[openssl-users] Raw EC key to EVP_PKEY to certificate
Ken Goldman
kgoldman at us.ibm.com
Sat Dec 31 01:20:38 UTC 2016
My overall goal is to create an X509 certificate for an ECC public key.
I am starting with the X and Y points. The curve is NIST_P256.
Here's the basic code. Am I close?
- EC_KEY ecKey = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)
- convert x and y from bin to bignum
- EC_KEY_set_public_key_affine_coordinates(ecKey, x, y)
- EVP_PUBKEY evpPubkey = EVP_PKEY_new()
- EVP_PKEY_set1_EC_KEY(evpPubkey, ecKey);
- X509_set_pubkey(x509Certificate, evpPubkey);
I'm getting far more information that I suspect I need. See the two
dumps below.
My result looks like this:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:e7:de:55:b0:09:2f:0a:83:0a:c9:fc:f0:82:d7:
97:e0:4e:02:7d:75:08:44:74:3e:5f:b6:b3:29:3d:
ad:69:b3:f4:c5:3d:65:ed:94:23:89:37:5c:d5:e5:
4c:0b:77:d4:55:f6:3c:83:24:27:fb:cb:21:dc:66:
df:11:5d:ac:65
Field Type: prime-field
Prime:
00:ff:ff:ff:ff:00:00:00:01:00:00:00:00:00:00:
00:00:00:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:ff
A:
00:ff:ff:ff:ff:00:00:00:01:00:00:00:00:00:00:
00:00:00:00:00:00:ff:ff:ff:ff:ff:ff:ff:ff:ff:
ff:ff:fc
B:
5a:c6:35:d8:aa:3a:93:e7:b3:eb:bd:55:76:98:86:
bc:65:1d:06:b0:cc:53:b0:f6:3b:ce:3c:3e:27:d2:
60:4b
Generator (uncompressed):
04:6b:17:d1:f2:e1:2c:42:47:f8:bc:e6:e5:63:a4:
40:f2:77:03:7d:81:2d:eb:33:a0:f4:a1:39:45:d8:
98:c2:96:4f:e3:42:e2:fe:1a:7f:9b:8e:e7:eb:4a:
7c:0f:9e:16:2b:ce:33:57:6b:31:5e:ce:cb:b6:40:
68:37:bf:51:f5
Order:
00:ff:ff:ff:ff:00:00:00:00:ff:ff:ff:ff:ff:ff:
ff:ff:bc:e6:fa:ad:a7:17:9e:84:f3:b9:ca:c2:fc:
63:25:51
Cofactor: 1 (0x1)
Seed:
c4:9d:36:08:86:e7:04:93:6a:66:78:e1:13:9d:26:
b7:81:9f:7e:90
while other certificates I see look like this:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:b2:72:2e:90:17:f8:19:2e:20:bb:cd:ee:fd:0a:
c5:f8:79:9f:33:e2:e3:04:f5:54:2c:39:7d:bb:b7:
7d:d5:b4:51:38:02:df:f1:14:44:81:9f:1e:1d:e1:
df:0e:4d:94:c8:15:26:5d:2a:96:9f:c2:dc:f0:c1:
3c:78:c1:1d:eb
ASN1 OID: prime256v1
NIST CURVE: P-256
More information about the openssl-users
mailing list