PKCS7 컨테이너를 사용하여 PDF 파일에 분리 서명을 만들고 싶습니다. 데이터 (해시)는 개인 키로 다른 장치에서 미리 서명됩니다. 공개 키가있는 인증서와 함께 서명 된 데이터가 포함 된 PKCS7을 만들고 싶습니다. 개인 키를 제공하지 않고 라이브러리에 데이터 서명을하지 않고 탄력이있는 PKCS7을 만들 수 없습니다.탄력성을 사용하여 미리 지정된 데이터로 PKCS7을 만듭니다.
InputStream inStream = new FileInputStream("1_public.pem");
BufferedInputStream bis = new BufferedInputStream(inStream);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
List<Certificate> certList = new ArrayList<Certificate>();
Certificate certificate = cf.generateCertificate(bis);
certList.add(certificate);
Store certs = new JcaCertStore(certList);
CMSSignedDataGenerator gen = new CMSSignedDataGenerator();
gen.addCertificates(certs);
CMSProcessableInputStream msg = new CMSProcessableInputStream(new ByteArrayInputStream("signedhash".getBytes()));
CMSSignedData signedData = gen.generate(msg, false);
byte[] pkcs7 = signedData.getEncoded()));
작동하지 않는 방법을 지정하십시오. – bmargulies
서명 된 데이터가 pkcs7에 누락되었습니다 – rob2000