2016-08-03 64 views
0

Ich habe ein Projekt in C#, wo ich die Dateien signieren muss, die sie .p7m mit Envelope Cryptographic CAdES machen, ich habe es mit BouncyCastle gemacht. Nun, es ist die Signierung funktioniert perfekt in Windows 7, 8, 10, aber wenn ich es auf Windows XP getestet, es war ein FehlerC# Sign Datei mit Hüpfburg Windows XP

Dies ist die Funktion, die Dateien signieren

SHA256Managed hashSha256 = new SHA256Managed(); 
byte[] certHash = hashSha256.ComputeHash(cert.RawData); 
EssCertIDv2 essCert1 = new EssCertIDv2(new Org.BouncyCastle.Asn1.X509.AlgorithmIdentifier("2.16.840.1.101.3.4.2.1"), certHash); 
SigningCertificateV2 scv2 = new SigningCertificateV2(new EssCertIDv2[] { essCert1 }); 
Org.BouncyCastle.Asn1.Cms.Attribute CertHAttribute = new Org.BouncyCastle.Asn1.Cms.Attribute(Org.BouncyCastle.Asn1.Pkcs.PkcsObjectIdentifiers.IdAASigningCertificateV2, new DerSet(scv2)); 
Asn1EncodableVector v = new Asn1EncodableVector(); 
v.Add(CertHAttribute); 
Org.BouncyCastle.Asn1.Cms.AttributeTable AT = new Org.BouncyCastle.Asn1.Cms.AttributeTable(v); 
CmsSignedDataGenWithRsaCsp cms = new CmsSignedDataGenWithRsaCsp(); 
Org.BouncyCastle.Crypto.AsymmetricKeyParameter keyParameter = null; 
dynamic rsa = (RSACryptoServiceProvider)cert.PrivateKey; 
Org.BouncyCastle.X509.X509Certificate certCopy = DotNetUtilities.FromX509Certificate(cert); 
cms.MyAddSigner(rsa, certCopy, keyParameter, "1.2.840.113549.1.1.1", "2.16.840.1.101.3.4.2.1", AT, null); 
ArrayList certList = new ArrayList(); 
certList.Add(certCopy); 
Org.BouncyCastle.X509.Store.X509CollectionStoreParameters PP = new Org.BouncyCastle.X509.Store.X509CollectionStoreParameters(certList); 
Org.BouncyCastle.X509.Store.IX509Store st1 = Org.BouncyCastle.X509.Store.X509StoreFactory.Create("CERTIFICATE/COLLECTION", PP); 
cms.AddCertificates(st1); 
FileInfo File__1 = new FileInfo(NomeFile); 
CmsProcessableFile file__2 = new CmsProcessableFile(File__1); 
CmsSignedData Firmato = cms.Generate(file__2, true); 
byte[] Encoded = Firmato.GetEncoded(); 
RisFirma = ""; 
return Encoded; 

That is the windows xp error

Hilfe wird sehr geschätzt. Mit freundlichen Grüßen

+0

Programmierung ist die Kunst der Programmierung * Zusammensetzung * Probleme zu lösen. –

Antwort

0

Ich löste das Problem, es scheint, dass der neueste CSP nicht mit Windows XP funktioniert, ich versuchte mit einem anderen CSP und die Funktion wieder zu arbeiten.

bye

0

Es sieht aus wie der SHA-256-Hash oder die OID des SHA-256. Versuchen Sie, XP auf das neueste Service Pack zu aktualisieren. XP ist alt, so dass es möglicherweise nicht alle Algorithmen out-of-the-box unterstützt. Die Idee, Signaturen auf XP-Rechnern zu erstellen, sollte vermieden werden. Sie sollten keine Sicherheit auf einer Plattform ohne Unterstützung oder Fehlerbehebungen erstellen.