Tag: digital signature

数字签名SunMSCAPI提供商和MS Crypto API

我想与SunMSCAPI提供商签署文件。 由于需要使用MS Crypto API导入公钥和签名。 通常使用SHA1withRSA生成签名,最终使用big-endian到little-endian(字节顺序)转换。 //generate keystore with java keytool $Keytool -genkey -alias tsign -keystore c:\test\tsignjks.p12 – keyalg rsa -storetype pkcs12 在Java应用程序中: //for signing and getting keystore, assuming windows certificate is installed ..ks = KeyStore.getInstance(“Windows-MY”,”SunMSCAPI”); PrivateKey priv = ks.getKey(“tsign”,password); Signature rsa = Signature.getInstance(“SHA1withRSA”,”SunMSCAPI”); rsa.initSign(priv); .. rsa.update(buffer, 0, len); .. byte[] realSig = rsa.sign(); //for writing […]

SHA256withRSA和SHA256之间的区别然后是RSA

使用以下两种方法计算签名有什么区别? 使用Signature.getInstance(“SHA256withRSA”)计算签名 使用MessageDigest.getInstance(“SHA-256”)计算SHA256并使用Signature.getInstance(“RSA”);计算摘要Signature.getInstance(“RSA”); 获得签名? 如果它们不同,有没有办法修改方法2,以便两种方法都给出相同的输出? 我尝试了以下代码: package mysha.mysha; import java.security.MessageDigest; import java.security.PrivateKey; import java.security.Security; import java.security.Signature; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class MySHA256 { public static void main(String[] args) throws Exception { //compute SHA256 first Security.addProvider(new BouncyCastleProvider()); String s = “1234”; MessageDigest messageDigest = MessageDigest.getInstance(“SHA-256”); messageDigest.update(s.getBytes()); byte[] outputDigest = messageDigest.digest(); //sign SHA256 with RSA PrivateKey privateKey = […]

iText7 LtvVerification.addVerification无法启用LTV

我们正在尝试启用已签名的签名LTV。 我使用以下代码添加validation。 当signature.isTsp()为false时,PDF表示Signature is not LTV enabled ,但在另一种情况下(signature.isTsp()为true),它显示为有效。 当我们打开PDF并尝试通过右键单击签名手动添加validation信息时,它会启用LTV而不会出现任何问题。 不知道我们在这里缺少什么。 任何输入都将非常有用。 // Adds LTV-enabled information to the PDF document. private ByteArrayOutputStream addLtv(final IOcspClient ocspClient, final ByteArrayOutputStream docStream) throws IOException, GeneralSecurityException { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); final InputStream signedStream = new ByteArrayInputStream(docStream.toByteArray()); final PdfReader reader = new PdfReader(signedStream); final PdfDocument document = new PdfDocument(reader, […]

pdfBox – 签名有效性复选标记在Acrobat阅读器中不可见

我正在使用此作为参考向pdf添加可视签名 – https://stackoverflow.com/a/27940667/7103795 我能够正确打印细节。 但是,在Acrobat中打开时,pdf不会显示绿色勾号,尽管它是“已签名且所有签名都有效”。 在签名面板中。 这是我需要的一个例子: 如何确保出现有效性标志? 我使用的是pdfBox版本2.0.1