PointyCastle / pointycastle

Moved into the Bouncy Castle project: https://github.com/bcgit/pc-dart
MIT License
271 stars 75 forks source link

RSA signing #43

Closed stevenroose closed 8 years ago

stevenroose commented 8 years ago

From @devoncarew on January 19, 2014 17:37

This is a feature request to have an RSA signing algorithm. Specifically, I need to be able to:

Thanks!

Copied from original issue: izaera/cipher#43

stevenroose commented 8 years ago

From @financeCoding on January 19, 2014 17:42

+1 for this feature

stevenroose commented 8 years ago

From @devoncarew on January 19, 2014 17:45

And, this will all be done in a browser environment (not dart:io), so we'll be pushing on that side of the library.

stevenroose commented 8 years ago

Just keep in mind that MD5 is no longer considered safe, whether it is for signing or for regular digests. I'm not against this feature but everyone using it should consider using safer signing algorithms for signing, like ECDSA, which is also supported by cipher. On Jan 19, 2014 6:45 PM, "Devon Carew" notifications@github.com wrote:

And, this will all be done in a browser environment (not dart:io), so we'll be pushing on that side of the library.

— Reply to this email directly or view it on GitHubhttps://github.com/izaera/cipher/issues/43#issuecomment-32714294 .

stevenroose commented 8 years ago

From @financeCoding on January 19, 2014 19:8

@stevenroose great point but there is a lot stuff that does use md5 for historical reasons.

stevenroose commented 8 years ago

From @devoncarew on January 19, 2014 21:52

So, I totally slipped a gear there. I meant to say RSA when filing this issue; we have a need to be able to create RSA keys and sign a token with them.

stevenroose commented 8 years ago

Makes more sense. I never heard of signing with MD5 but a quick Google returned a few vague results so I considered it was possible... RSA should be on the feature list, though

stevenroose commented 8 years ago

From @izaera on January 20, 2014 8:5

Definitely, we need to have RSA as it is the standard for asymmetric crypto. We already have ECDSA as Steven points out, but missing RSA won't be good.

Right now I'm working on finishing block cipher modes of operation, next will be standard digests (like MD5, for instance) and RSA.

Regarding key generation, we are still missing a good secure source of entropy, so I'm not sure how functional the RSA key generator will be... Nevertheless, we also have the same problem for ECDSA.

stevenroose commented 8 years ago

From @izaera on February 12, 2014 7:20

I will implement RSA signing from Bouncy Castle, which is following the PKCS 1 standard. I will implement the other standards in future versions.

More info about RSA standards here: http://www.drdobbs.com/rsa-digital-signatures/184404605 and here: https://en.wikipedia.org/wiki/PKCS_1

stevenroose commented 8 years ago

From @izaera on February 15, 2014 20:46

Finally, I won't use blinding as in Bouncy Castle, just plain PKCS1 RSA signature. Also, I'm not yet implementing Chinese Remainder Theorem.

stevenroose commented 8 years ago

From @izaera on February 15, 2014 22:13

Done and working :-).

stevenroose commented 8 years ago

From @devoncarew on February 16, 2014 23:38

Awesome! Looking forward to trying it out.