aws / aws/aws-encryption-sdk-java
Support EC Algorithms/Keys
- Lenguaje dominante
- Java
- Estrellas
- 240
- Forks
- 125
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### 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/ )
Guía de contribución
Línea de trabajo
Comienza leyendo com.amazonaws.encryptionsdk.internal.RsaJceKeyCipher.java y JceKeyCipher.java; después, sigue cómo el wrapper de transformación selecciona los algoritmos RSA/ECB. Determina la ruta de algoritmo basada en EC compatible descrita en el issue, como ECIESwithAES de Bouncy Castle. Se considera completado cuando se pueden usar claves EC con el Encryption SDK sin la InvalidKeyException indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- cryptography, security
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100