Openssl 3.0.0 creating ECC key from X and Y, PEM_write_PUBKEY fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have X and Y as bignums.  I create EVP_PKEY with this.

I suspect that I have to do another step to indicate that I supplied X and Y and not a compressed
public key.


	param_bld = OSSL_PARAM_BLD_new();	
	rc = getEcCurveString(&curveString,		gets strings like prime256v1
	irc = OSSL_PARAM_BLD_push_utf8_string(param_bld, OSSL_PKEY_PARAM_GROUP_NAME,
					      curveString, 0);
	irc = OSSL_PARAM_BLD_push_BN(param_bld, OSSL_PKEY_PARAM_EC_PUB_X, x);
	irc = OSSL_PARAM_BLD_push_BN(param_bld, OSSL_PKEY_PARAM_EC_PUB_Y, y);
	params = OSSL_PARAM_BLD_to_param(param_bld);	
	ctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL);	
	irc = EVP_PKEY_fromdata_init(ctx);
	irc = EVP_PKEY_fromdata(ctx, evpPubkey, EVP_PKEY_PUBLIC_KEY, params);

following that, this fails with

	irc = PEM_write_PUBKEY(pemFile, evpPubkey);

==88032== Invalid read of size 8
+=88032==    at 0x4CB27F7: ec_point_is_compat (ec_local.h:328)
==88032==    by 0x4CB2AB1: EC_POINT_point2oct (ec_oct.c:82)
==88032==    by 0x4CA506F: i2o_ECPublicKey (ec_asn1.c:1158)
==88032==    by 0x4E7B0D2: ec_spki_pub_to_der (encode_key2any.c:701)
==88032==    by 0x4E79DBE: key_to_pubkey (encode_key2any.c:154)
==88032==    by 0x4E7A490: key_to_spki_pem_pub_bio (encode_key2any.c:348)
==88032==    by 0x4E7B9CA: key2any_encode (encode_key2any.c:1043)
==88032==    by 0x4E7F539: ec_to_SubjectPublicKeyInfo_pem_encode (encode_key2any.c:1359)
==88032==    by 0x4CF2C3F: encoder_process (encoder_lib.c:632)
==88032==    by 0x4CF17AC: OSSL_ENCODER_to_bio (encoder_lib.c:63)
==88032==    by 0x4CF1897: OSSL_ENCODER_to_fp (encoder_lib.c:85)
==88032==    by 0x4D8BE33: PEM_write_PUBKEY (pem_all.c:226)

point is null




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux