本文整理汇总了Java中org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags.TWOFISH属性的典型用法代码示例。如果您正苦于以下问题:Java SymmetricKeyAlgorithmTags.TWOFISH属性的具体用法?Java SymmetricKeyAlgorithmTags.TWOFISH怎么用?Java SymmetricKeyAlgorithmTags.TWOFISH使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags
的用法示例。
在下文中一共展示了SymmetricKeyAlgorithmTags.TWOFISH属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getSymmetricCipherName
static String getSymmetricCipherName(
int algorithm)
{
switch (algorithm)
{
case SymmetricKeyAlgorithmTags.NULL:
return null;
case SymmetricKeyAlgorithmTags.TRIPLE_DES:
return "DESEDE";
case SymmetricKeyAlgorithmTags.IDEA:
return "IDEA";
case SymmetricKeyAlgorithmTags.CAST5:
return "CAST5";
case SymmetricKeyAlgorithmTags.BLOWFISH:
return "Blowfish";
case SymmetricKeyAlgorithmTags.SAFER:
return "SAFER";
case SymmetricKeyAlgorithmTags.DES:
return "DES";
case SymmetricKeyAlgorithmTags.AES_128:
return "AES";
case SymmetricKeyAlgorithmTags.AES_192:
return "AES";
case SymmetricKeyAlgorithmTags.AES_256:
return "AES";
case SymmetricKeyAlgorithmTags.TWOFISH:
return "Twofish";
default:
throw new IllegalArgumentException("unknown symmetric algorithm: " + algorithm);
}
}
示例2: getSymmetricCipherName
public static String getSymmetricCipherName(
int algorithm)
{
switch (algorithm)
{
case SymmetricKeyAlgorithmTags.NULL:
return null;
case SymmetricKeyAlgorithmTags.TRIPLE_DES:
return "DESEDE";
case SymmetricKeyAlgorithmTags.IDEA:
return "IDEA";
case SymmetricKeyAlgorithmTags.CAST5:
return "CAST5";
case SymmetricKeyAlgorithmTags.BLOWFISH:
return "Blowfish";
case SymmetricKeyAlgorithmTags.SAFER:
return "SAFER";
case SymmetricKeyAlgorithmTags.DES:
return "DES";
case SymmetricKeyAlgorithmTags.AES_128:
return "AES";
case SymmetricKeyAlgorithmTags.AES_192:
return "AES";
case SymmetricKeyAlgorithmTags.AES_256:
return "AES";
case SymmetricKeyAlgorithmTags.CAMELLIA_128:
return "Camellia";
case SymmetricKeyAlgorithmTags.CAMELLIA_192:
return "Camellia";
case SymmetricKeyAlgorithmTags.CAMELLIA_256:
return "Camellia";
case SymmetricKeyAlgorithmTags.TWOFISH:
return "Twofish";
default:
throw new IllegalArgumentException("unknown symmetric algorithm: " + algorithm);
}
}
示例3: makeRandomKey
public static byte[] makeRandomKey(
int algorithm,
SecureRandom random)
throws PGPException
{
int keySize = 0;
switch (algorithm)
{
case SymmetricKeyAlgorithmTags.TRIPLE_DES:
keySize = 192;
break;
case SymmetricKeyAlgorithmTags.IDEA:
keySize = 128;
break;
case SymmetricKeyAlgorithmTags.CAST5:
keySize = 128;
break;
case SymmetricKeyAlgorithmTags.BLOWFISH:
keySize = 128;
break;
case SymmetricKeyAlgorithmTags.SAFER:
keySize = 128;
break;
case SymmetricKeyAlgorithmTags.DES:
keySize = 64;
break;
case SymmetricKeyAlgorithmTags.AES_128:
keySize = 128;
break;
case SymmetricKeyAlgorithmTags.AES_192:
keySize = 192;
break;
case SymmetricKeyAlgorithmTags.AES_256:
keySize = 256;
break;
case SymmetricKeyAlgorithmTags.TWOFISH:
keySize = 256;
break;
default:
throw new PGPException("unknown symmetric algorithm: " + algorithm);
}
byte[] keyBytes = new byte[(keySize + 7) / 8];
random.nextBytes(keyBytes);
return keyBytes;
}
示例4: encryptAndDecrypt
@Test
public void encryptAndDecrypt() throws Exception {
// both keys have property encryptionKey==true
final String[] keyIds = {
"d7a92a24aa97ddbd", // master-key
"a58da7d810b74edf" // sub-key
};
for (final String keyId : keyIds) {
final PGPDataEncryptorBuilder encryptorBuilder = new BcPGPDataEncryptorBuilder(SymmetricKeyAlgorithmTags.TWOFISH);
final PGPEncryptedDataGenerator encryptedDataGenerator = new PGPEncryptedDataGenerator(encryptorBuilder);
final PGPKeyEncryptionMethodGenerator keyEncryptionMethodGenerator = new BcPublicKeyKeyEncryptionMethodGenerator(
getPgpPublicKeyOrFail(bytesToLong(decodeHexStr(keyId))));
encryptedDataGenerator.addMethod(keyEncryptionMethodGenerator);
final byte[] plain = new byte[1 + random.nextInt(1024 * 1024)];
random.nextBytes(plain);
final File encryptedFile = File.createTempFile("encrypted_", ".tmp");
try (final OutputStream encryptedOut = new FileOutputStream(encryptedFile);) {
try (final OutputStream plainOut = encryptedDataGenerator.open(encryptedOut, new byte[1024 * 16]);) {
plainOut.write(plain);
}
}
final byte[] decrypted;
try (InputStream in = new FileInputStream(encryptedFile)) {
final PGPEncryptedDataList encryptedDataList = new PGPEncryptedDataList(new BCPGInputStream(in));
final Iterator<?> encryptedDataObjects = encryptedDataList.getEncryptedDataObjects();
assertThat(encryptedDataObjects.hasNext()).isTrue();
final PGPPublicKeyEncryptedData encryptedData = (PGPPublicKeyEncryptedData) encryptedDataObjects.next();
assertThat(encryptedDataObjects.hasNext()).isFalse();
final PublicKeyDataDecryptorFactory dataDecryptorFactory = new BcPublicKeyDataDecryptorFactory(
getPgpPrivateKeyOrFail(encryptedData.getKeyID(), "test12345".toCharArray()));
try (InputStream plainIn = encryptedData.getDataStream(dataDecryptorFactory);) {
final ByteArrayOutputStream out = new ByteArrayOutputStream();
transferStreamData(plainIn, out);
decrypted = out.toByteArray();
}
}
assertThat(decrypted).isEqualTo(plain);
encryptedFile.delete(); // delete it, if this test did not fail
}
}
示例5: makeSymmetricKey
public static SecretKey makeSymmetricKey(
int algorithm,
byte[] keyBytes)
throws PGPException
{
String algName;
switch (algorithm)
{
case SymmetricKeyAlgorithmTags.TRIPLE_DES:
algName = "DES_EDE";
break;
case SymmetricKeyAlgorithmTags.IDEA:
algName = "IDEA";
break;
case SymmetricKeyAlgorithmTags.CAST5:
algName = "CAST5";
break;
case SymmetricKeyAlgorithmTags.BLOWFISH:
algName = "Blowfish";
break;
case SymmetricKeyAlgorithmTags.SAFER:
algName = "SAFER";
break;
case SymmetricKeyAlgorithmTags.DES:
algName = "DES";
break;
case SymmetricKeyAlgorithmTags.AES_128:
algName = "AES";
break;
case SymmetricKeyAlgorithmTags.AES_192:
algName = "AES";
break;
case SymmetricKeyAlgorithmTags.AES_256:
algName = "AES";
break;
case SymmetricKeyAlgorithmTags.TWOFISH:
algName = "Twofish";
break;
default:
throw new PGPException("unknown symmetric algorithm: " + algorithm);
}
return new SecretKeySpec(keyBytes, algName);
}