22
33import org .bouncycastle .crypto .Digest ;
44import org .bouncycastle .crypto .InvalidCipherTextException ;
5- import org .bouncycastle .crypto .digests .*;
65import org .bouncycastle .crypto .engines .AESEngine ;
76import org .bouncycastle .crypto .digests .MD5Digest ;
87import org .bouncycastle .crypto .digests .SHA1Digest ;
1413import org .bouncycastle .crypto .paddings .PaddedBufferedBlockCipher ;
1514import org .bouncycastle .crypto .params .*;
1615import org .bouncycastle .crypto .signers .Ed25519Signer ;
16+ import org .jspecify .annotations .NonNull ;
1717
1818import javax .crypto .BadPaddingException ;
1919import java .nio .charset .Charset ;
@@ -33,10 +33,6 @@ public static String toStr(byte[] bytes, boolean hex) {
3333 return new String (bytes , CHARSET );
3434 }
3535
36- public static String toStr (byte [] bytes ) {
37- return toStr (bytes , true );
38- }
39-
4036 private static String digest (Digest digest , String data , boolean hex ) {
4137 digest .update (data .getBytes (CHARSET ), 0 , data .length ());
4238 byte [] hash = new byte [digest .getDigestSize ()];
@@ -217,28 +213,25 @@ public static String encryptAes(String data, String key, String iv) throws BadPa
217213 var ivBytes = iv .getBytes (CHARSET );
218214 var dataBytes = data .getBytes (CHARSET );
219215
220- var cipher = new PaddedBufferedBlockCipher (new CBCBlockCipher ( new AESEngine ()), new PKCS7Padding ());
216+ var cipher = new PaddedBufferedBlockCipher (CBCBlockCipher . newInstance ( AESEngine . newInstance ()), new PKCS7Padding ());
221217 cipher .init (true , new ParametersWithIV (new KeyParameter (keyBytes ), ivBytes ));
222218
223- var output = new byte [cipher .getOutputSize (dataBytes .length )];
224- int len = cipher .processBytes (dataBytes , 0 , dataBytes .length , output , 0 );
225- try {
226- len += cipher .doFinal (output , len );
227- } catch (InvalidCipherTextException e ) {
228- throw new BadPaddingException (e .getMessage ());
229- }
230-
231- return new String (output , 0 , len , CHARSET );
219+ return getString (dataBytes , cipher );
232220 }
233221
234222 public static String decryptAes (String data , String key , String iv ) throws BadPaddingException {
235223 var keyBytes = key .getBytes (CHARSET );
236224 var ivBytes = iv .getBytes (CHARSET );
237225 var dataBytes = data .getBytes (CHARSET );
238226
239- var cipher = new PaddedBufferedBlockCipher (new CBCBlockCipher ( new AESEngine ()), new PKCS7Padding ());
227+ var cipher = new PaddedBufferedBlockCipher (CBCBlockCipher . newInstance ( AESEngine . newInstance ()), new PKCS7Padding ());
240228 cipher .init (false , new ParametersWithIV (new KeyParameter (keyBytes ), ivBytes ));
241229
230+ return getString (dataBytes , cipher );
231+ }
232+
233+ @ NonNull
234+ private static String getString (byte [] dataBytes , PaddedBufferedBlockCipher cipher ) throws BadPaddingException {
242235 var output = new byte [cipher .getOutputSize (dataBytes .length )];
243236 int len = cipher .processBytes (dataBytes , 0 , dataBytes .length , output , 0 );
244237 try {
0 commit comments