use of com.qcloud.cos.internal.crypto.EncryptionMaterials in project cos-java-sdk-v5 by tencentyun.
the class AsymmetricKeyEncryptionClientDemo method createCosClient.
static COSClient createCosClient(String region) {
// 初始化用户身份信息(secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials("AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
// 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
ClientConfig clientConfig = new ClientConfig(new Region(region));
// 为防止请求头部被篡改导致的数据无法解密,强烈建议只使用 https 协议发起请求
clientConfig.setHttpProtocol(HttpProtocol.https);
KeyPair asymKeyPair = null;
try {
// 加载保存在文件中的秘钥, 如果不存在,请先使用buildAndSaveAsymKeyPair生成秘钥
// buildAndSaveAsymKeyPair();
asymKeyPair = loadAsymKeyPair();
} catch (Exception e) {
throw new CosClientException(e);
}
// 初始化 KMS 加密材料
EncryptionMaterials encryptionMaterials = new EncryptionMaterials(asymKeyPair);
// 使用AES/GCM模式,并将加密信息存储在文件元信息中.
CryptoConfiguration cryptoConf = new CryptoConfiguration(CryptoMode.AesCtrEncryption).withStorageMode(CryptoStorageMode.ObjectMetadata);
// // 如果 kms 服务的 region 与 cos 的 region 不一致,则在加密信息里指定 kms 服务的 region
// cryptoConf.setKmsRegion(kmsRegion);
// // 如果需要可以为 KMS 服务的 cmk 设置对应的描述信息。
// encryptionMaterials.addDescription("kms-region", "guangzhou");
// 生成加密客户端EncryptionClient, COSEncryptionClient是COSClient的子类, 所有COSClient支持的接口他都支持。
// EncryptionClient覆盖了COSClient上传下载逻辑,操作内部会执行加密操作,其他操作执行逻辑和COSClient一致
COSEncryptionClient cosEncryptionClient = new COSEncryptionClient(new COSStaticCredentialsProvider(cred), new StaticEncryptionMaterialsProvider(encryptionMaterials), clientConfig, cryptoConf);
return cosEncryptionClient;
}
use of com.qcloud.cos.internal.crypto.EncryptionMaterials in project cos-java-sdk-v5 by tencentyun.
the class SymmetricCOSEncryptionClientWithInstructionCryptoModeTest method initEncryptionInfo.
private static void initEncryptionInfo() throws NoSuchAlgorithmException {
KeyGenerator symKeyGenerator = KeyGenerator.getInstance("AES");
symKeyGenerator.init(128);
SecretKey symKey = symKeyGenerator.generateKey();
encryptionMaterials = new EncryptionMaterials(symKey);
cryptoConfiguration = new CryptoConfiguration(CryptoMode.AuthenticatedEncryption).withStorageMode(CryptoStorageMode.InstructionFile);
}
use of com.qcloud.cos.internal.crypto.EncryptionMaterials in project cos-java-sdk-v5 by tencentyun.
the class SymmetricCOSEncryptionClientWithObjectMetaCryptoModeTest method initEncryptionInfo.
private static void initEncryptionInfo() throws NoSuchAlgorithmException {
KeyGenerator symKeyGenerator = KeyGenerator.getInstance("AES");
symKeyGenerator.init(128);
SecretKey symKey = symKeyGenerator.generateKey();
encryptionMaterials = new EncryptionMaterials(symKey);
cryptoConfiguration = new CryptoConfiguration(CryptoMode.AuthenticatedEncryption).withStorageMode(CryptoStorageMode.ObjectMetadata);
}
use of com.qcloud.cos.internal.crypto.EncryptionMaterials in project cos-java-sdk-v5 by tencentyun.
the class ASymmetricCOSEncryptionClientWithObjectMetadataCryptoModeTest method initEncryptionInfo.
private static void initEncryptionInfo() throws NoSuchAlgorithmException {
KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
keyGenerator.initialize(1024, new SecureRandom());
KeyPair keyPair = keyGenerator.generateKeyPair();
encryptionMaterials = new EncryptionMaterials(keyPair);
cryptoConfiguration = new CryptoConfiguration(CryptoMode.AuthenticatedEncryption).withStorageMode(CryptoStorageMode.InstructionFile);
}
use of com.qcloud.cos.internal.crypto.EncryptionMaterials in project cos-java-sdk-v5 by tencentyun.
the class ASymmetricCOSEncryptionClientWithInstructionCryptoModeTest method initEncryptionInfo.
private static void initEncryptionInfo() throws NoSuchAlgorithmException {
KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA");
keyGenerator.initialize(1024, new SecureRandom());
KeyPair keyPair = keyGenerator.generateKeyPair();
encryptionMaterials = new EncryptionMaterials(keyPair);
cryptoConfiguration = new CryptoConfiguration(CryptoMode.AuthenticatedEncryption).withStorageMode(CryptoStorageMode.ObjectMetadata);
}
Aggregations