On 28/04/17 20:29, Blumenthal, Uri - 0553 - MITLL wrote:
> I’m playing with RSA-PSS signatures, and stumbled upon a few problems. I
> tried the OpenSSL manual pages, but still coming short of complete
> understanding. :-)
> 
>  
> 
> This is how I initialize the contexts (error handlers removed for brevity):
> 
>  
> 
>       ctx = EVP_PKEY_CTX_new(privkey, NULL);

Don't do this. Just set ctx to NULL.

> 
>       md_ctx = EVP_MD_CTX_create();
> 
>       const EVP_MD *md = EVP_sha256();
> 
>       rv = EVP_DigestInit_ex(md_ctx, md, NULL);
>
>       rv = EVP_DigestSignInit(md_ctx, &ctx, md, NULL, privkey);

ctx gets "filled in" by the EVP_DigestSignInit call.

> 
>  
> 
> First question: do I need EVP_DigestInit_ex() there?

No. It unnecessary.

> 
>  
> 
> Second question: do I have to specify hash-function (EVP_MD*) twice?
> First when initializing EVP_MD_CTX, and second for EVP_DigestSignInit()?
> 

No...don't call EVP_DigestInit_ex() at all.

>  
> 
> At the end I need to dispose of both ctx and md_ctx.

"ctx" is "owned" by md_ctx. Just free md_ctx and ctx also gets freed.


Matt
-- 
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to