implement single-line RSA key support
Signed-off-by: earlgrey02 <san06036@naver.com>
This commit is contained in:
committed by
Josh Cummings
parent
fc48088759
commit
5194826606
@@ -87,9 +87,17 @@ public final class RsaKeyConverters {
|
||||
"Key is not in PEM-encoded PKCS#8 format, please check that the header begins with "
|
||||
+ PKCS8_PEM_HEADER);
|
||||
StringBuilder base64Encoded = new StringBuilder();
|
||||
for (String line : lines) {
|
||||
if (RsaKeyConverters.isNotPkcs8Wrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
if (lines.size() == 1) {
|
||||
base64Encoded.append(lines.get(0)
|
||||
.replace(PKCS8_PEM_HEADER, "")
|
||||
.replace(PKCS8_PEM_FOOTER, "")
|
||||
.replaceAll("\\s+", ""));
|
||||
}
|
||||
else {
|
||||
for (String line : lines) {
|
||||
if (RsaKeyConverters.isNotPkcs8Wrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
byte[] pkcs8 = Base64.getDecoder().decode(base64Encoded.toString());
|
||||
@@ -165,9 +173,15 @@ public final class RsaKeyConverters {
|
||||
@Override
|
||||
public @NonNull RSAPublicKey convert(List<String> lines) {
|
||||
StringBuilder base64Encoded = new StringBuilder();
|
||||
for (String line : lines) {
|
||||
if (isNotX509PemWrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
if (lines.size() == 1) {
|
||||
base64Encoded.append(
|
||||
lines.get(0).replace(X509_PEM_HEADER, "").replace(X509_PEM_FOOTER, "").replaceAll("\\s+", ""));
|
||||
}
|
||||
else {
|
||||
for (String line : lines) {
|
||||
if (isNotX509PemWrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
byte[] x509 = Base64.getDecoder().decode(base64Encoded.toString());
|
||||
@@ -196,9 +210,17 @@ public final class RsaKeyConverters {
|
||||
@Override
|
||||
public @NonNull RSAPublicKey convert(List<String> lines) {
|
||||
StringBuilder base64Encoded = new StringBuilder();
|
||||
for (String line : lines) {
|
||||
if (isNotX509CertificateWrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
if (lines.size() == 1) {
|
||||
base64Encoded.append(lines.get(0)
|
||||
.replace(X509_CERT_HEADER, "")
|
||||
.replace(X509_CERT_FOOTER, "")
|
||||
.replaceAll("\\s+", ""));
|
||||
}
|
||||
else {
|
||||
for (String line : lines) {
|
||||
if (isNotX509CertificateWrapper(line)) {
|
||||
base64Encoded.append(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
byte[] x509 = Base64.getDecoder().decode(base64Encoded.toString());
|
||||
|
||||
@@ -120,6 +120,13 @@ public class RsaKeyConvertersTests {
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(2048);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pkcs8WhenConvertingSingleLinePkcs8PrivateKeyThenOk() {
|
||||
RSAPrivateKey key = this.pkcs8.convert(toInputStream(PKCS8_PRIVATE_KEY.replace("\n", "")));
|
||||
Assertions.assertThat(key).isInstanceOf(RSAPrivateCrtKey.class);
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(2048);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pkcs8WhenConvertingPkcs1PrivateKeyThenIllegalArgumentException() {
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> this.pkcs8.convert(toInputStream(PKCS1_PRIVATE_KEY)));
|
||||
@@ -131,12 +138,24 @@ public class RsaKeyConvertersTests {
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(1024);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x509WhenConvertingSingleLineX509PublicKeyThenOk() {
|
||||
RSAPublicKey key = this.x509.convert(toInputStream(X509_PUBLIC_KEY.replace("\n", "")));
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(1024);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x509WhenConvertingX509CertificateThenOk() {
|
||||
RSAPublicKey key = this.x509.convert(toInputStream(X509_CERTIFICATE));
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(1024);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x509WhenConvertingX509SingleLineCertificateThenOk() {
|
||||
RSAPublicKey key = this.x509.convert(toInputStream(X509_CERTIFICATE.replace("\n", "")));
|
||||
Assertions.assertThat(key.getModulus().bitLength()).isEqualTo(1024);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x509WhenConvertingDerEncodedX509PublicKeyThenIllegalArgumentException() {
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> this.x509.convert(toInputStream(MALFORMED_X509_KEY)));
|
||||
|
||||
Reference in New Issue
Block a user