小编Jul*_*aga的帖子

使用 Bouncy Castle c# 创建 CRL 文件

我已经使用 Bouncy Castle 构建了我自己的根 CA 证书,并且我正在使用它来构建其他证书。我想使用 Bouncy Castle C# 构建证书吊销列表 (CRL) 以包含吊销证书的列表。例子:

//Retrieve CA root certificate

X509Store CAstore = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
CAstore.Open(OpenFlags.ReadWrite | OpenFlags.OpenExistingOnly);

X509Certificate2Collection x509Certificate2Collection =
CAstore.Certificates.Find(X509FindType.FindBySerialNumber,
                         this.textBoxSerialCA.Text, true);

X509Certificate2 cert = x509Certificate2Collection[0];
var certCA = DotNetUtilities.FromX509Certificate(cert);
CAstore.Close();

X509V2CrlGenerator crlGen = new X509V2CrlGenerator();
crlGen.SetIssuerDN(certCA.IssuerDN);
crlGen.SetThisUpdate(DateTime.Now);
crlGen.SetNextUpdate(DateTime.Now.AddYears(1));
crlGen.SetSignatureAlgorithm("SHA1withRSA");

crlGen.AddCrlEntry(BigInteger.One, DateTime.Now, CrlReason.PrivilegeWithdrawn);

crlGen.AddExtension(X509Extensions.AuthorityKeyIdentifier,
                   false, 
                   new AuthorityKeyIdentifierStructure(certCA));

crlGen.AddExtension(X509Extensions.CrlNumber,
                   false, 
                   new CrlNumber(BigInteger.One));

var randomGenerator = new CryptoApiRandomGenerator();
var random = new SecureRandom(randomGenerator);

var Akp = Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(cert.PrivateKey).Private;                


X509Crl crlTemp = crlGen.Generate(Akp,random);
Run Code Online (Sandbox Code Playgroud)

一切都好,直到这一点。如何将 X509Crl …

c# bouncycastle certificate-revocation

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

将图像添加到使用 itextSharp 进行数字签名的 PDF

我想将图像放入经过数字签名的 PDF 中。如果我用通常的方式来做,签名就会被破坏。但使用 Acrobat 可以将注释图章添加到已签名的 PDF 中,并且签名不会被破坏。

谷歌搜索我找到了一个如何做到这一点的例子:

http://itext.2136553.n4.nabble.com/Digital-Signature-Corrupted-after-adding-watermark-image-td4657457.html

我已将其翻译为 c# 但没有成功:

using (Stream inputPdfStream = new FileStream("test.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream inputImageStream = new FileStream("grafo.jpg", FileMode.Open, FileAccess.Read, FileShare.Read))
using (Stream outputPdfStream = new FileStream("result.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
{
    var reader = new PdfReader(inputPdfStream);
    var stamper = new PdfStamper(reader, outputPdfStream);

    iTextSharp.text.Image image =  iTextSharp.text.Image.GetInstance(inputImageStream);
    image.SetAbsolutePosition(0, 0);

    PdfTemplate template = PdfTemplate.CreateTemplate(stamper.Writer, image.Width, image.Height);
    template.AddImage(image);

    iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(350, 250, 350 + image.Width, 250 + image.Height);

    PdfAnnotation annotation = PdfAnnotation.CreateStamp(stamper.Writer, …
Run Code Online (Sandbox Code Playgroud)

pdf itext

0
推荐指数
1
解决办法
1863
查看次数

标签 统计

bouncycastle ×1

c# ×1

certificate-revocation ×1

itext ×1

pdf ×1