[openssl-users] Incompatible Object error from EC_POINT_mul

Nicola nic.tuv at gmail.com
Mon Oct 8 07:35:33 UTC 2018


Hi,

I did not run this in the debugger, but one issue is that you are not
initializing `pub` before calling EC_POINT_mul : try adding

pub = EC_POINT_new(curve);
(and check for errors making sure pub is not null afterwards).

Hope this helps!


Best regards,

Nicola


On Mon, Oct 8, 2018, 00:31 John Hughes <john.hughes at secid.co.uk> wrote:

> I'm trying to generate a public key from a private key generated on a HSM
> (and obtained by calling PKCS#11). Everything works fine until I call
> EC_POINT_mul - at which point I get the error message:
>
>        error:100BB065:elliptic curve routines:ec_wNAF_mul:incompatible
> objects
>
> I have checked the BIGNUM conversion - and that seems to be fine. The key
> pair on the HSM is also generated using brainpoolP256r1.
>
> The basis of the code can be found at the end of the email. I'm basically
> trying to follow the example provided in:
>         https://wiki.openssl.org/index.php/Elliptic_Curve_Cryptography.
>
> I'm using openssl 1.10h
>
> Any pointers or help would be appreciated.
>
>
> John
>
> ---------------------------------------------------------------
>
>
>         BN_CTX *ctx;
>         ctx = BN_CTX_new();
>         if(!ctx) {
>                 outputInfo("unable to create openssl BN_CTX");
>                 return;
>         }
>
>         EC_GROUP *curve;
>
>         outputInfo("about to create EC_GROUP_new_by_curve_name");
>         if(NULL == (curve =
> EC_GROUP_new_by_curve_name(NID_brainpoolP256r1))) {
>                 outputERRORmess("unable to setup curve");
>         }
>
>         outputInfo("about to create EC_KEY_new_by_curve_name");
>         EC_KEY *key;
>         if(NULL == (key = EC_KEY_new_by_curve_name(NID_brainpoolP256r1))) {
>                 outputERRORmess("unable to setup EC_KEY");
>         }
>
>         // now get the private key contained in CKA_VALUE via PKCS#111 and
> place in *attrPrivate.pValue
>
>                 .......... (handle error)
>
>         EC_POINT *pub;
>
>
>         BIGNUM *prv = BN_bin2bn((unsigned char*)attrPrivate.pValue,
> attrPrivate.ulValueLen, NULL);
>         if (prv == NULL) {
>
>         ...... (handle error)
>         }
>
>         if (1 != EC_KEY_set_private_key(key, prv)) {
>
>                 ........ (handle error)
>         }
>
>         if (1 != EC_POINT_mul(curve, pub, prv, NULL, NULL, ctx)) {
>                 outputInfo("unable to calculate the public key from the
> HSM's private key using EC_POINT_mul");
>                 (handle error)
>
>         }
>
>
>
>
>
>
>
> --
> openssl-users mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20181008/bcd98715/attachment-0001.html>


More information about the openssl-users mailing list