디지털 서명 인증서를 지원하려면 digitalSignature
옵션이 있어야합니다. keyUsage
필드 (해당 프로그램에 서명하려는 경우 extendedKeyUsage
필드의 경우 codeSigning
옵션)가 있어야합니다.
서명을 수동으로 기존의 도구 나 (자바 예를 들어, 당신이 요구되지 않지만,이 코드는 어쨌든 유용 할 수 있습니다)을 수행 할 수 있습니다 : 당신의 자신없는 자체 서명 된 인증서를 만들려면
byte[] bytesToSign = loadMyData();
KeyStore ks = KeyStore.getInstance("pkcs12", "SunJSSE");
ks.load(new FileInputStream("cert.p12"), "passwd1".toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey("myalias", "passwd2".toCharArray());
Signature sig = Signature.getInstance("SHA1withRSA", ks.getProvider());
sig.initSign(privateKey);
sig.update(bytesToSign);
byte[] signature = sig.sign();
openssl은 this SO answer을 참조하십시오.
또한 PDF 서명에 대해 궁금한 점이 있습니까? 귀하의 경우이 파일들을 별도의 해시 합계로 충분하지 않습니까?
편집 : 기존 도구에 의한 기호, 정확히 X.509 기호를 원하는 경우, 당신은 당신의 인증서에서 RSA 키를 추출 할 수 있습니다 약 keyUsage
필드를 귀찮게하지 않고 서명 않습니다.
나는 PDF로 송장에 대해 이야기하고 있으며 법적 유효성을 갖기 위해 디지털 서명이 필요합니다. 그렇다면이 경우 단순히 합계로 충분하지 않습니다. – StormByte
나는 이미이 목적을 위해 자체 서명 된 키를 쉽게 만들 수 있음을 알고 있지만, 그렇게 할 경우 내 고객이 받게 될 경고를 피하고자했습니다. – StormByte