2012-01-18 3 views
0

나는 안드로이드 애플 리케이션 pkcs7 파일 클라이언트와 서버 사이의 통신 (기밀 데이터가 그들 사이에서 전송)에 생성하려고합니다.안드로이드에서 SpongyCastle로 pkcs # 7 인증서를 만드는 방법은 무엇입니까?

사실 나는 직업을 위해 잘 보이는 SpongyCastle을 시도합니다.

사실, 주어진 예제를 사용하여 시도해 보았습니다. AttrCertExample. 내 인증서가 v3 중 하나에서 생성되어 확인 된 것으로 보입니다. 모두 정상입니다.

그 다음이 같은 그것의 데르 버전을 만들려고 :

String strResult = Base64.encode(cert.getTBSCertificate(), Base64.NO_WRAP).toString(); 

을하지만,이 작업의 결과는 나에게 내가 이런 식으로 뭔가를하고 싶어 아주 작은 자료 64 인코딩 된 문자열 (제공 :

MIICyzCCAbOgAwI [...] 6Shws =

당신은 실제로 SpongyCastle에 의해 생성 된 인증서의 PKCS # 7 버전을 얻는 방법을 알고 계십니까 (기본 64에서 960 개 문자)?

미리 감사드립니다. 도움을 주셔서 감사합니다. 필요한 경우 더 많은 코드를 제공 할 수 있습니다.

답변

0

신속하게 답변을 받았습니다. 이것은 당신이 작업을 수행하는 방법입니다

// returns a byte array containing the Certificate 
byte[] buf = clientCert.getEncoded(); 

// Returns Base64 encoded certificate 
String strCertificateCrypted_b64 = new String(Base64.encode(buf, Base64.NO_WRAP)); 

그런 다음 당신은 다음과 같이 인증서를 얻을 :

MIIDHjCCAgagAwIBAgIEOH9W+ [...] czP+BohBw== 

를 DER 확장에 이것을 저장하면 쉽게 인증서 내용을 볼 수 있습니다.

+0

PKCS # 12가 아닙니다. –

+0

그래, 나중에 DER 인증서 (PKCS # 7)가 필요하고 개인 키가있는 PKCS # 12가 필요 없다는 것을 알았다. 논리적으로 유지하기 위해 제목을 변경합니다. – Thordax