我正在将我的模块从bouncy castle迁移到iaik pkcs7。我需要结合IAIK库的iaik.pkcs.pkcs7.EnvelopedDataStream使用blowfish、twofish和idea加密算法。Idea加密算法Id存在于IAIK的AlgorithmID类中,但不能直接实现(可能是因为密钥长度可变)。Blowfish是作为单独的密码类出现的,但我不知道如何将其与封装数据一起使用(这一点很重要,因为我将使用公钥加密方法)。我实际上可以使用河豚加密,然后使用封装数据和一些算法,如aes,并发送此信息,但在这种情况下,接收器将不会有算法信息。密钥可以与recepientInfo一起传递。
如果有人可以告诉我的方式,即使是基本的,我也许能够继续下去。
提前感谢
阿特拉亚
发布于 2013-11-19 14:52:04
嗨,我想出了解决方案
ByteArrayInputStream is =新的消息(ByteArrayInputStream);
AlgorithmID blowfish=new AlgorithmID("1.3.6.1.4.1.3029.1.2","BLOWFISH_CBC","Blowfish/CBC/PKCS5Padding");
byte[] iv = new byte[8];
random.nextBytes(iv);
try{
KeyGenerator keyGen = KeyGenerator.getInstance("Blowfish", "IAIK");
secretKey = keyGen.generateKey();
AlgorithmParameterSpec params = new IvParameterSpec(iv);
keyGen.init(128);
secretKey = keyGen.generateKey();
iaik.pkcs.pkcs7.EncryptedContentInfoStream eci = new iaik.pkcs.pkcs7.EncryptedContentInfoStream(ObjectID.pkcs7_data, is);
eci.setupCipher(blowfish, secretKey, params);
return eci;
}catch(Exception e){
}
谢谢
https://stackoverflow.com/questions/19999947
复制相似问题