In a large mixing bowl cream together the butter and sugar.
Add vanilla and beat again.
Add eggs, one at a time, beating well after each addition.
Mix together flour, baking powder and salt in a separate bowl.
Alternate adding flour mixture and buttermilk to the creamed mixture in 3 batches, beginning and ending with the dry ingredients. Beat after each addition, just until combined.
Line a lightly greased muffin pan with cupcake liners and fill each liner 3/4 of the way full.
Bake in a 350°F oven for 18-25 minutes, or until a toothpick comes out clean. Allow to cool completely
For the Filling:
In a medium bowl, beat egg yolks well.
Gradually stir in milk until well blended.
In a large, heavy saucepan over medium-low heat, mix together sugar, cornstarch, and salt.
Gradually add in milk mixture, stirring well to prevent lumps.
Continue cooking over medium-low heat, stirring constantly until mixture reaches a low boil (about 20 minutes). Mixture should be thickened at this point, and will continue to thicken as it cools. Remove from heat.
Set pot in a large bowl of ice water, still stirring. Add vanilla and stir to combine.
Place a piece of plastic wrap directly on filling to prevent a skin from forming and place in refrigerator until ready to use.
Prepare the Ganache
Place chocolate in a food processor and process until it's finely chopped. Transfer to a mixing bowl. Set aside. Heat cream in a small saucepan until the cream starts to steam, stirring often. Gradually add the hot cream to the bowl of chocolate, and whisk until the mixture is smooth. Wait until cool enough to handle but not hardened.
To assemble the cupcakes:
When the cupcakes are cooled completely, transfer pastry cream filling to a piping bag with filling tip attached.
Fill each cupcake with pastry cream and set aside.
Dip each cupcake into the finished ganache. Allow 30 minutes to an hour for the ganache to set.
Homemade pastry cream is best, but in a pinch you can substitute a boxed pudding mix, prepared to package instructions.
Allow ganache to cool for at least 10-20 minutes before dipping cupcakes into it, or it will be too runny.