2013-11-15 2 views
0

내 탄력성에서 내 모듈을 iaik pkcs7로 마이그레이션 중입니다. IAIK 라이브러리의 iaik.pkcs.pkcs7.EnvelopedDataStream과 함께 복어, 투 피어 및 아이디어 암호화 알고리즘을 사용해야합니다. 아이디어 암호화 알고리즘 Id는 IAIK의 AlgorithmID 클래스에 있지만 직접 구현할 수는 없습니다 (키 길이가 가변적 일 수 있음). Blowfish는 별도의 암호 클래스로 제공되지만 봉투 데이터와 함께 사용하는 방법을 알아 내지 못했습니다 (이는 공개 키 암호화 방법을 사용하기 때문에 중요합니다). 나는 복어를 사용하여 실제로 암호화 할 수 있으며, 그런 다음 엔벨로프 된 데이터와 일부 알고리즘을 사용하여 랩하고이를 전송하지만 리시버는 알고리즘 정보를 가지고 있지 않습니다. recepientInfo와 함께 비밀 키를 전달할 수 있습니다.복어 암호화 iaik pkcs7 EnvelopedData

누구나 가능하다면 기본적인 방법을 보여줄 수 있습니다. 사전에

덕분에

Atraya는

답변

0

안녕하세요 솔루션 함께했다

이 InputStream = 새로운 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){ 

    } 

이 방법이 잘못되었거나 개선 될 수 있는지 또는 다른 방법이 있는지 알려주세요.

감사합니다.