aws / aws/aws-encryption-sdk-java
Support EC Algorithms/Keys
- Langage dominant
- Java
- Étoiles
- 240
- Forks
- 125
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
### Problem:
Currently elliptic curve keys do not work due to the "transform" wrapper requiring "RSA/ECB" algorithms which then results in the following stacktrace:
```
Caused by: java.security.InvalidKeyException: No installed provider supports this key: sun.security.ec.ECPublicKeyImpl
at javax.crypto.Cipher.chooseProvider(Cipher.java:896)
at javax.crypto.Cipher.init(Cipher.java:1399)
at javax.crypto.Cipher.init(Cipher.java:1330)
at com.amazonaws.encryptionsdk.internal.RsaJceKeyCipher.buildWrappingCipher(RsaJceKeyCipher.java:95)
at com.amazonaws.encryptionsdk.internal.JceKeyCipher.encryptKey(JceKeyCipher.java:89)
```
EC keys are becoming more and more popular so it would be highly beneficial if we could use EC keys with the encryption SDK.
### Solution:
Allow non-RSA/ECB algorithms for the wrapper in order to allow for EC-based algorithms such as "ECIESwithAES" provided by bouncycastle.
### Out of scope:
Is there anything the solution will intentionally NOT address?
[//]: # (NOTE: If you believe this might be a security issue, please email aws-security@amazon.com instead of creating a GitHub issue. For more details, see the AWS Vulnerability Reporting Guide: https://aws.amazon.com/security/vulnerability-reporting/ )
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par lire com.amazonaws.encryptionsdk.internal.RsaJceKeyCipher.java et JceKeyCipher.java, puis suivez la manière dont le wrapper de transformation sélectionne les algorithmes RSA/ECB. Déterminez le chemin d’algorithme basé sur EC pris en charge et décrit dans l’issue, tel que ECIESwithAES de Bouncy Castle. Le travail est considéré comme terminé lorsque des clés EC peuvent être utilisées avec l’Encryption SDK sans l’InvalidKeyException signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- cryptography, security
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100