final protected SecretKey generateCEK()

in oss-20190517/src/main/java/com/aliyun/sdk/service/oss20190517/encryption/internal/CryptoModuleAesCtr.java [47:64]


    final protected SecretKey generateCEK() {
        KeyGenerator generator;
        final String keygenAlgo = contentCryptoScheme.getKeyGeneratorAlgorithm();
        final int keyLength = contentCryptoScheme.getKeyLengthInBits();
        try {
            generator = KeyGenerator.getInstance(keygenAlgo);
            generator.init(keyLength, cryptoConfig.getSecureRandom());
            SecretKey secretKey = generator.generateKey();
            for (int retry = 0; retry < 9; retry++) {
                secretKey = generator.generateKey();
                if (secretKey.getEncoded()[0] != 0)
                    return secretKey;
            }
            throw new OSSClientException("Failed to generate secret key", null);
        } catch (NoSuchAlgorithmException e) {
            throw new OSSClientException("No such algorithm:" + keygenAlgo + ", " + e.getMessage(), e);
        }
    }