From 82e404930c2973f5bcf117b7f2c3db7bfaedc86a Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 6 Aug 2020 02:35:09 +0200 Subject: [PATCH] Code polish, updated base64 dependency --- src/dorkbox/util/crypto/Crypto.java | 2 +- src/dorkbox/util/crypto/CryptoPGP.java | 2 +- src/dorkbox/util/crypto/CryptoSCrypt.java | 9 +++++---- src/dorkbox/util/crypto/CryptoX509.java | 21 +++++++++++++++------ 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/dorkbox/util/crypto/Crypto.java b/src/dorkbox/util/crypto/Crypto.java index 9b32668..04aff85 100644 --- a/src/dorkbox/util/crypto/Crypto.java +++ b/src/dorkbox/util/crypto/Crypto.java @@ -41,7 +41,7 @@ import org.lwjgl.util.xxhash.XXH32State; import org.lwjgl.util.xxhash.XXHash; import org.slf4j.Logger; -import dorkbox.util.OS; +import dorkbox.os.OS; import dorkbox.util.bytes.LittleEndian; /** diff --git a/src/dorkbox/util/crypto/CryptoPGP.java b/src/dorkbox/util/crypto/CryptoPGP.java index d55b9cd..85dc340 100644 --- a/src/dorkbox/util/crypto/CryptoPGP.java +++ b/src/dorkbox/util/crypto/CryptoPGP.java @@ -63,8 +63,8 @@ import org.bouncycastle.openpgp.operator.bc.BcPGPDataEncryptorBuilder; import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider; import org.bouncycastle.openpgp.operator.bc.BcPublicKeyKeyEncryptionMethodGenerator; +import dorkbox.os.OS; import dorkbox.util.IO; -import dorkbox.util.OS; /** * PGP crypto related methods diff --git a/src/dorkbox/util/crypto/CryptoSCrypt.java b/src/dorkbox/util/crypto/CryptoSCrypt.java index e66dc0c..da32276 100644 --- a/src/dorkbox/util/crypto/CryptoSCrypt.java +++ b/src/dorkbox/util/crypto/CryptoSCrypt.java @@ -17,6 +17,7 @@ package dorkbox.util.crypto; import java.security.SecureRandom; import java.util.Arrays; +import java.util.Base64; /** * An implementation of the scrypt key derivation function. @@ -111,9 +112,9 @@ class CryptoSCrypt { sb.append("$s0$") .append(params) .append('$'); - sb.append(dorkbox.util.Base64Fast.encodeToString(salt, false)) + sb.append(Base64.getEncoder().encodeToString(salt)) .append('$'); - sb.append(dorkbox.util.Base64Fast.encodeToString(derived, false)); + sb.append(Base64.getEncoder().encodeToString(derived)); return sb.toString(); } @@ -141,8 +142,8 @@ class CryptoSCrypt { } int params = Integer.parseInt(parts[2], 16); - byte[] salt = dorkbox.util.Base64Fast.decodeFast(parts[3]); - byte[] derived0 = dorkbox.util.Base64Fast.decodeFast(parts[4]); + byte[] salt = Base64.getDecoder().decode(parts[3]); + byte[] derived0 = Base64.getDecoder().decode(parts[4]); //noinspection NumericCastThatLosesPrecision int N = (int) Math.pow(2, params >> 16 & 0xFF); diff --git a/src/dorkbox/util/crypto/CryptoX509.java b/src/dorkbox/util/crypto/CryptoX509.java index 13023d0..6b1cdf3 100644 --- a/src/dorkbox/util/crypto/CryptoX509.java +++ b/src/dorkbox/util/crypto/CryptoX509.java @@ -40,6 +40,7 @@ import java.security.interfaces.DSAParams; import java.security.spec.InvalidKeySpecException; import java.security.spec.RSAPrivateCrtKeySpec; import java.security.spec.RSAPublicKeySpec; +import java.util.Base64; import java.util.Date; import java.util.Enumeration; @@ -114,7 +115,6 @@ import org.bouncycastle.operator.bc.BcRSAContentVerifierProviderBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import dorkbox.util.Base64Fast; import dorkbox.util.crypto.signers.BcECDSAContentSignerBuilder; import dorkbox.util.crypto.signers.BcECDSAContentVerifierProviderBuilder; @@ -145,14 +145,19 @@ public class CryptoX509 { String cert_begin = "-----BEGIN CERTIFICATE-----"; String cert_end = "-----END CERTIFICATE-----"; - byte[] derCert = x509cert.getEncoded(); - char[] encodeToChar = Base64Fast.encodeToChar(derCert, false); + byte[] derCert = Base64.getMimeEncoder().encode(x509cert.getEncoded()); + char[] encodeToChar = new char[derCert.length]; + + for (int i = 0; i < derCert.length; i++) { + encodeToChar[i] = (char) derCert[i]; + } + int newLineCount = encodeToChar.length/64; int length = encodeToChar.length; - output = new BufferedWriter(new FileWriter("dorkbox.crt", false), + output = new BufferedWriter(new FileWriter(fileName, false), cert_begin.length() + cert_end.length() + length + newLineCount + 3); output.write(cert_begin); @@ -191,8 +196,12 @@ public class CryptoX509 { String cert_begin = "-----BEGIN CERTIFICATE-----"; String cert_end = "-----END CERTIFICATE-----"; - byte[] derCert = x509cert.getEncoded(); - char[] encodeToChar = Base64Fast.encodeToChar(derCert, false); + byte[] derCert = Base64.getMimeEncoder().encode(x509cert.getEncoded()); + char[] encodeToChar = new char[derCert.length]; + + for (int i = 0; i < derCert.length; i++) { + encodeToChar[i] = (char) derCert[i]; + } int newLineCount = encodeToChar.length/64;