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