I can use RPC calls to create a padded multisig address. It would be fairly simple.
{
"address" : "3DmfeKGpHVsC7HHf2GumUE31NG14f4P8SM",
"redeemScript" : "52210200000000000000000000000000000000000000000000000000000000000000012103694411c22d04a72ced42e79d584de695e322e67b9f2bafc1f2805146dda20f6021036b033de1664219216408262a9a32dfb801f09b0bfb53dd83f036fedf1a64448853ae"
}
The first key in the array would be 0x02 concatenated with the counter as a 256 bit hex string. I understand it is a hack and I would be happy to consider alternatives. I can't use bitcoind to generate a generate a sequence of BIP32 addresses from a seed and I do not wish to use another wallet/client as despite its limitations I have trust in bitcoind.
Maybe it will help if I explain what I am doing. Currently a service accepts funds from users through a unique (Pay2PubKeyHash) address. The "deposits" are swept to P2SH multisig cold storage. I would prefer instead to have users deposit directly to the cold storage. The problem is that bitcoind provides very poor support for P2SH and no support for BIP32. Nice link I will check that out.
I guess an offline hack would be to use a BIP32 "generator" to load the required the necessary keys into the offline signing wallets (bitcoind). The server could use three BIP32 master public keys to and a counter to generate the three unique pubkey and create the deterministic P2SH addresses on demand. One headache in redemption will be "finding" all the cold storage unspent outputs to "redeem" them. It is bad enough with a single P2SH address but with thousands? It would be nice is bitcoind supported a RPC call that would return the set of unspent outputs for an arbitrary address. However I don't believe there is any way to do that right?