android 使用BouncyCastle

网址:

https://square.github.io/retrofit/

https://github.com/square/retrofit/
 https://www.jianshu.com/p/81754adcd4ae

android jdk8使用

implementation 'org.bouncycastle:bcprov-jdk15on:1.70'

报异常:

java.security.NoSuchAlgorithmException: Provider BC does not provide SM4/CBC/PKCS5Padding

generateSm4EcbCipher 替换成它

private Cipher generateSm4EcbCipher(String sm4Name, int sm4Mode, byte[] sm4Key) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException {


//        Cipher cipher = Cipher.getInstance(sm4Name, BouncyCastleProvider.PROVIDER_NAME);
        Cipher cipher = Cipher.getInstance(sm4Name, new BouncyCastleProvider());
        Key secretKey = new SecretKeySpec(sm4Key, SM4_NAME);
        IvParameterSpec ivParameterSpec = new IvParameterSpec(SM4_KEY_IV);
        try {
            cipher.init(sm4Mode, secretKey, ivParameterSpec);
        } catch (InvalidKeyException | InvalidAlgorithmParameterException e) {
            e.printStackTrace();
        }
        return cipher;
    }