Answered my own question: should use EVP_PKEY_bits(pkey) instead. -- Regards, Uri Blumenthal
On 3/18/16, 14:57 , "openssl-users on behalf of Blumenthal, Uri - 0553 - MITLL" <openssl-users-boun...@openssl.org on behalf of u...@ll.mit.edu> wrote: >First, Stephen and Viktor - thank you! > >On 3/17/16, 19:45 , "openssl-users on behalf of Dr. Stephen Henson" ><openssl-users-boun...@openssl.org on behalf of st...@openssl.org> wrote: > >>On Thu, Mar 17, 2016, Viktor Dukhovni wrote: >>> >>>Well you can work with >>>http://openssl.org/docs/manmaster/crypto/EC_KEY_key2buf.html >>> to extract EC public key octets. >> >>That's only available in the master branch, only encodes the key value >>and not >>its parameters and of course it only works for EC. > >Got it. I’ll not use it, as it’s too specific. > >>>If you want an ASN.1 encoded "SPKI" object (i.e. an >>> X509_PUBKEY in OpenSSL) then you can use... > >Yes, that’s PRECISELY what I want, thank you! > >>>A shorter version of the above is possible via i2d_PUBKEY() which >>> handles the creation, encoding and destruction of the intermediate >>> X509_PUBKEY: . . . >>That's the preferred route as it uses the standard SubjectPublicKeyInfo >>format and works with any supported public key type. > >Thank you! The main disadvantage of the shorter version is that it does >not provide me with the length of the buffer it created. So for now I’ll >use the longer one - unless I’m missing something very obvious, and >there’s a trivial way to correctly tell the size of the returned buffer. > >Along the same line - I am trying to generate ECDH key pair that would be >on the same curve that the keys on my hardware token. The tokens I’m >dealing with can have keys on either P-256 or P-384 curve. > >My problem: I seem unable to figure out what curve the token keys belong >to. Here’s how the public key gets loaded: > > pubkey = ENGINE_load_public_key(*e, "id_03", NULL, NULL); > if (pubkey == NULL) { > fprintf(stderr, "wrap: failed to retrieve pubkey id_03\n"); > ERR_print_errors_fp(stderr); > goto end; > } > > *bitsize = EVP_PKEY_size(pubkey); > printf("wrap: ECC pubkey size is %1lu\n", *bitsize); > > >The problem with the above code is that it (apparently) gives me the size >of the EVP_PKEY object, while I mean to ask a different question. > >How do I determine what curve the above key is on? > >Thanks!
smime.p7s
Description: S/MIME cryptographic signature
-- openssl-users mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users