标签: digital-signature

有没有办法以编程方式获取已安装RPM的签名密钥ID?

如显示rpm -qi package

我真的不想解析输出rpm -qi.我更愿意使用rpm -q --qf,我可以控制格式,并且不会受到未来版本的美学异想天开.

但是我在手册页中找到的唯一有用的标签是SIGPGP,它为我提供了整个签名,而不仅仅是短密钥ID.看到不同:

$ rpm -qi coreutils
Name        : coreutils                    Relocations: (not relocatable)
Version     : 8.4                               Vendor: Fedora Project
Release     : 8.fc13                        Build Date: Tue 20 Jul 2010 05:21:15 AM BRT
Install Date: Tue 03 Aug 2010 01:58:53 PM BRT      Build Host: x86-17.phx2.fedoraproject.org
Group       : System Environment/Base       Source RPM: coreutils-8.4-8.fc13.src.rpm
Size        : 12659257                         License: GPLv3+
Signature   : RSA/SHA256, Tue 20 Jul 2010 03:14:09 PM BRT, Key ID 7edc6ad6e8e40fde
Packager …
Run Code Online (Sandbox Code Playgroud)

linux rpm gnupg pgp digital-signature

5
推荐指数
1
解决办法
1852
查看次数

盲目签署和验证的库或软件是什么?

我最近听说过盲人签名.我看到维基百科关于它们如何工作的文章,但不想实现它.我可以使用哪些库(最好与linux和windows兼容)来实现盲签名并验证文件是否已签名?

我尝试查看openssl手册页,但我认为它不支持盲签名http://www.openssl.org/docs/apps/dgst.html

我可以在C++或.NET中实现我的应用程序,并且没有问题产生进程并解析它们的输出,但是lib优先于软件.

c++ security cryptography rsa digital-signature

5
推荐指数
0
解决办法
456
查看次数

验证分离的签名(*.p7s文件)和X509Certificate2

我在我的方法中收到一个XML文档作为字符串参数.XML文档是:   

<Document>
    <ZipContainer> Zip_File_In_Base64 </ZipContainer>
    <X509Certificate> Certificate_In_Base64 </X509Certificate>
</Document>
Run Code Online (Sandbox Code Playgroud)

从这个字符串中我提取了base64格式的ZIP文件和base64格式的X509Certificate2证书.ZIP文件包含:

  • 将ZIP文件的内容描述为XML(文件packageDescription.xml)的文件;

  • 包含传输文件内容的文件(例如*.doc文件);

  • 具有分离数字签名内容的*.p7s文件(文件 - 分离的数字签名);

从归档应该提取签名的签名文件(分离的数字签名可能不止一个).分离的数字签名存储在具有.p7s扩展名的文件中.必须完成每个签名以检查其与数字签名的协议,用户使用该签名登录到门户.

必须包括两个步骤:

  1. 请参阅方法certificateValidator()(请参阅下面的此方法):这是一个分离的签名,包含在.p7s文件中,其中包含相应的签名文件,这些*.P7S-文件.
    例如:一对相关文件:ZayavUL_3594c921f545406d9b8734bbe28bf894.doc_1.p7s
    ZayavUL_3594c921f545406d9b8734bbe28bf894.doc.

  2. 请参阅方法certificateValidator():此方法验证来自文件.p7s的证书,该证书具有从XML文档输入字符串中提取的证书.

问题

  1. 该方法signatureValidator(请参阅下面的此方法)当前未使用文件的分离签名.p7s.我试过了,但没有成功.如何正确验证.p7s其相应文件的文件的分离签名?

  2. 在该方法中certificateValidator(请参阅下面的此方法),如何验证从.p7s文件中提取的证书与从Base64格式的输入字符串中提取的证书的一致性?

  3. 代码行foreach (X509Certificate2 x509 in signCms.Certificates) { }--->证书集合总是空的.为什么?

输入参数

  • Dictionary <string, byte[]> dictP7SFiles (key - 文件名*.p7s,value - 字节数组,表示*.p7s文件)

  • Dictionary <string, byte[]> dictNotP7SFiles (key - 使用*.p7s文件中的分离签名签名的文件的名称,value …

c# cryptography digital-signature

5
推荐指数
1
解决办法
3053
查看次数

如何在Sharepoint 2010中的c#工作流程中重置InfoPath表单的数字签名?

正如问题所说,我在提交时使用ac#工作流在SP2010上运行了一个InfoPath表单.如果表单在工作流程中被拒绝,那么我需要重置它.我掌握了一切,除了如何将数字签名重置为null,nill,nada,没有,非现存!有任何想法吗?我现在正在看谷歌,但就目前而言,我甚至不确定是否有数字签名?

哇,我注意到这个问题突然获得了很多流行音乐,奖金几乎消失了.只是把它放在那里,我不打算不给别人,但我本周早些时候需要答案(2012年11月第2周),因此我尽可能地搜索和播放代码,直到我找到了自己的代码.在别人回答我之前回答.但是,为了将来参考,如果有人给出了更好的答案,我很乐意回来并代表他们.谢谢大家的支持,我真的希望我的回答对我来说同样有用.

现在 Bloggered && Gisted 可能再没有人像我对这个答案那样努力搜索,:P

c# workflow digital-signature sharepoint-2010 infopath2010

5
推荐指数
1
解决办法
1190
查看次数

使用PDFBox从PDF获取可见签名?

是否可以使用OSS libary PDFBox提取已签名PDF的可见签名(捕获图像)?

工作流程: - 列出文件的所有签名 - 显示签名包括可见签名 - 显示有效 - 提取签名图像(需要为每个签名提取正确的图像)

oop风格的东西如下所示:PDFSignatures [] sigs = document.getPDFSignatures()sig [0] .getCN()...(Buffered)Image visibleSig = sig [0] .getVisibleSignature()

找到类PDSignature以及如何签名PDF,但不是将可见签名提取为图像的解决方案.

谢谢你的帮助!电贺

pdf signature capture digital-signature pdfbox

5
推荐指数
1
解决办法
3168
查看次数

如何将分离的CAdES签名转换为使用BC封装?

我的java applet能够使用分离类型的Bouncy Castle 1.4.9生成CMSSignedData.然后将字节数组sigData.getEncoded()存储在服务器上的表中(该表可以访问未包含的内容数据).现在我想在服务器中创建封装的CMSSignedData,以便用户下载.p7m文件.

我需要开发的函数具有分离签名的字节数组和内容数据的字节数组,并且必须返回CaDES封装签名的字节数组,该字符数组将用于下载.p7m文件.

问题是我无法将分离的签名转换为封闭的签名.

以下是我在applet中使用的一些代码: signCAdeS使用分离签名对文档进行签名,然后调用attach(仅用于测试)将分离转换为封装但未成功:使用Dike打开创建的.p7m文件是不可能的查看内容数据.

private byte[] signCAdES(byte[] aDocument, PrivateKey aPrivateKey, Certificate[] certChain)
        throws GeneralSecurityException {
    byte[] digitalSignature = null;
    try {

        Security.addProvider(new BouncyCastleProvider());
        ArrayList<X509Certificate> certsin = new ArrayList<X509Certificate>();
        for (int i = 0; i < certChain.length; i++) {
            certsin.add((X509Certificate) certChain[i]);
        }
        X509Certificate cert = certsin.get(0);
        //Nel nuovo standard di firma digitale e' richiesto l'hash del certificato di sottoscrizione:
        String digestAlgorithm = "SHA-256";
        String digitalSignatureAlgorithmName = "SHA256withRSA";
        MessageDigest sha = MessageDigest.getInstance(digestAlgorithm);
        byte[] digestedCert = …
Run Code Online (Sandbox Code Playgroud)

java cryptography bouncycastle digital-signature

5
推荐指数
1
解决办法
2074
查看次数

PDF签名摘要

我有一个关于计算用于数字签名的PDF文档摘要的快速问题(与我之前的一个问题有点相关,我试图弄清楚为什么你需要知道客户的证书才能创建正确的摘要).在Adobe有关PDF格式的文档中,指定了以下内容:

应在文件中的字节范围内计算字节范围摘要,该字节范围摘要应由签名字典中的ByteRange条目指示.此范围应该是整个文件,包括签名字典,但不包括签名值本身(内容条目).

所以在这一点上事情似乎相当简单,只是消化/ Sig字典中除/ Contents条目之外的所有内容./ Contents条目中的实际数据指定如下:

对于公钥签名,Contents应该是DER编码的PKCS#1二进制数据对象或DER编码的PKCS#7二进制数据对象.

所以仍然没有问题,我可以(可能)生成摘要,为/ Contents条目保留空间并稍后附加此PKCS#7对象.当我阅读以下内容时,混乱就开始了:

撤销信息是签名属性,这意味着签名软件必须在签名之前捕获吊销信息.类似的要求适用于证书链.签名软件必须在签名之前捕获并验证证书链.

所以我没有得到的东西:显然/ Contents条目(包含证书和签名摘要)没有消化,但证书链是一个签名属性(因此需要被消化?).

如果有人能够进一步确定消化的内容,我会很感激,也许更好地向我解释已签名的属性.我想回答的主要问题是:我是否可以在事先不知道某人的证书的情况下创建一个可签名的摘要?(我正在使用pkcs7分离签名)

pdf digest digital-signature pkcs#7

5
推荐指数
1
解决办法
2525
查看次数

获取文件的AuthenticodeSignatureInformation

我发现使用AuthenticodeSignatureInformation的唯一例子 是从ManifestSignatureInformation获取实例 .我发现得到的唯一方法使用它的一个VerifySignature 方法.所有这些都需要一个ActivationContext ,反过来:

标识当前应用程序的激活上下文.

(重点补充.)

所以

我如何得到AuthenticodeSignatureInformation一个的文件?(我知道处理Authenticode签名的其他方法.我正在寻找这个类.)

.net c# security cryptography digital-signature

5
推荐指数
0
解决办法
330
查看次数

用Java进行数字签名

所以我陷入了这个问题:

IE Edge不再允许applet,activeX等,

我有一个用于数字签名的小程序

这个想法是从客户端的KEY文件中提取私钥,这样私钥就永远不会离开客户端计算机,这是安全性的要求,这是不可避免的:(

我正在寻找API或框架,但找不到解决此问题的方法,

jsrsasign例子使用了PEM文件,但我的用户拥有.CER + .KEY +密码,在java中我能做到这一点,但我需要做的是在JavaScript或东西在客户端。

并且,在阅读了Web密码学API和我发现的一些示例之后,它们生成了新的私钥和公钥来签名,但是他们从未读过现有的证书

是否有人有这个问题或知道我可以使用的框架?请heeeelp!

javascript applet internet-explorer digital-signature microsoft-edge

5
推荐指数
1
解决办法
2503
查看次数

对jar文件进行签名时,签名文件(* .SF)的作用是什么?

正如我从https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html了解到的,使用jarsigner签名jar文件的过程如下:

  1. 清单文件将使用每个文件的哈希列表进行更新:

    名称:com / qarks / util / files / diff / ui / main / DiffMergeFrame.class SHA-256-摘要:GZgPXG9YnmVGXb + hFwnJF4im4hb / qixX2Gs + ZNpdGFU =

    名称:com / qarks / util / ui / swing / PrintManager.class SHA-256-摘要:cO6XolXrk5NlHBocDF0fzojlwSAKlDoGsY / jdJ0fzdY =

  2. 签名文件(* .SF)已创建。它包含:

    • 清单文件的哈希
    • 清单文件中主要属性的哈希
    • 清单文件中每个文件的哈希值。
  3. 创建签名块文件(* .RSA,*。DSA)。它存储* .SF签名文件的数字签名。

因此,我想知道为什么我们根本需要* .SF-为什么我们不能仅签名清单文件而不是* .SF文件?

还有* .SF文件中具有哈希值的目的是什么(附加检查?在什么情况下?)?

java jar sign digital-signature jarsigner

5
推荐指数
1
解决办法
799
查看次数