Digital Signature support for EdDSA with E25519

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Digital Signature support for EdDSA with E25519

Sarah Hand
Hi Bouncy Castle Devs,

I'm a relative novice to Java security, but am being asked to sign some data using EdDSA with E25519 elliptic curve.  I'm trying to determine if Bouncy Castle supports this or not. I have public/private keys already created for that curve and need to use these keys to do the signing, but I can't figure out how to initialize/setup the classes to work.

For example, I've tried the following code (thinking this is the right way to proceed) but cannot determine what algorithm value to provide that represents "EdDSA with E25519" that is supported by BC.

        Security.addProvider(new BouncyCastleProvider());
        Signature signature = Signature.getInstance("EdDSAE25519", "BC");

I'm not sure if this is relevant or not . . . but I did not find the E25519 ellliptic curve listed on the supported curve Wiki page - http://www.bouncycastle.org/wiki/pages/viewpage.action?pageId=362269 - but since the page hasn't been updated since 2015, I thought it might be out of date. But I'm also not sure if this page is documenting what types of key generation is supported by BC (which I don't need) or what types of keys can be used by BC (for digital signing, for example).

Any additional information you folks can provide, or pointers to relevant BC documentation, test classes or examples, is much appreciated.

Thanks,
Sarah
Reply | Threaded
Open this post in threaded view
|

Re: Digital Signature support for EdDSA with E25519

David Hook-3
Hi,

Support for Edwards Curves is now in the latest beta. The best way to use them is by algorithm name as they follow the RFCs, e.g. Ed448, Ed25519.

See https://www.bouncycastle.org/betas for details.

Regards,

David

On 11/09/18 05:04, Sarah Hand wrote:
Hi Bouncy Castle Devs,

I'm a relative novice to Java security, but am being asked to sign some data using EdDSA with E25519 elliptic curve.  I'm trying to determine if Bouncy Castle supports this or not. I have public/private keys already created for that curve and need to use these keys to do the signing, but I can't figure out how to initialize/setup the classes to work.

For example, I've tried the following code (thinking this is the right way to proceed) but cannot determine what algorithm value to provide that represents "EdDSA with E25519" that is supported by BC.

        Security.addProvider(new BouncyCastleProvider());
        Signature signature = Signature.getInstance("EdDSAE25519", "BC");

I'm not sure if this is relevant or not . . . but I did not find the E25519 ellliptic curve listed on the supported curve Wiki page - http://www.bouncycastle.org/wiki/pages/viewpage.action?pageId=362269 - but since the page hasn't been updated since 2015, I thought it might be out of date. But I'm also not sure if this page is documenting what types of key generation is supported by BC (which I don't need) or what types of keys can be used by BC (for digital signing, for example).

Any additional information you folks can provide, or pointers to relevant BC documentation, test classes or examples, is much appreciated.

Thanks,
Sarah