On Thu, Feb 09, 2006, Bob Mearns wrote:

> 
> genkeys() {
>       DSA *dsa;
>       unsigned char encodedPubKey[MAX];
>       int pubLen, genstat;
>       dsa = DSA_generate_parameters(...);
>       /* error check*/
>       genStat = DSA_generate_key(dsa);
>       /* error check */
>       pubLen = i2d_DSA_PUBKEY(dsa, &encodedPubKey);
>       /* error check */
> }
> 
> verify(const unsigned char *encodedKeyPtr, long encodedKeyLen, ...) {
>       DSA *pPubKey;
>       int vStat;
>       pPubKey =DSA_new();
>       /* error check */
>       pPubKey = d2i_DSA_PUBKEY(&pPubKey,
>                 &encodedKeyPtr, encodedKeyLen);
>       /* error check */
>       vStat = DSA_verify(..., pPubKey);
>       /* error check */
> }
> 
> Any help appreciated.
> 

The correct way to use the i2d functions is mentioned in the FAQ. Don't *ever*
assume that it will be a maximum size because that can result in buffer
overrun attacks.

Steve.
--
Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
OpenSSL project core developer and freelance consultant.
Funding needed! Details on homepage.
Homepage: http://www.drh-consultancy.demon.co.uk
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to