Preheat the oven to 350ºF / 180ºC and grease and line two 9 inch round cake tins.
Beat the butter (1.5 cups / 340g) and sugar (2 cups / 400g) until light and fluffy which will take around 3-4 minutes then add in the egg yolks one by one beating between each addition.
In a separate bowl mix together the flour (2 cups / 240g), salt and baking soda then start to add this one third at a time alternating with the buttermilk (1 cup / 240ml), start and finish with the flour.
Add in the vanilla and mix to combine.
In a separate bowl and using an electric whisk, beat the egg whites until stiff peaks form. Stir one quarter of the egg whites into the cake mixture then fold in the remaining three quarters.
Divide the cake batter between the two cake tins and bake in the oven for around 30 minutes until a toothpick inserted into the center of the cake comes out clean.
Once baked, allow to cool in the tins for ten minutes before removing from the tins and transferring to wire racks to cool completely.
Make the frosting by adding the cream (6 tbsp / 90ml) to the chopped white chocolate (1 cup / 170g) then heating in the microwave until completely melted. Set aside to cool.
In a large bowl, beat the cream cheese (4 oz / 113g) and butter (⅔ cup / 150g) until smooth then add in the cooled white chocolate and cream mixture and mix again.
Gradually add in the powdered sugar (5 cups / 600g) and the extracts and mix until smooth. If it is too thick, add a little more cream but slowly until you have the desired consistency.
Spread the frosting on one layer of the cake then top with the other layer then cover the top and sides with the remaining frosting.
Top the cake with some crushed candy canes and some white chocolate curls.