public virtual void ToSignaturePolicyIdentifierTest() { SignaturePolicyIdentifier actual = new SignaturePolicyInfo(POLICY_IDENTIFIER, POLICY_HASH, POLICY_DIGEST_ALGORITHM , POLICY_URI).ToSignaturePolicyIdentifier(); DerIA5String deria5String = new DerIA5String(POLICY_URI); SigPolicyQualifierInfo sigPolicyQualifierInfo = new SigPolicyQualifierInfo(Org.BouncyCastle.Asn1.Pkcs.PkcsObjectIdentifiers.IdSpqEtsUri , deria5String); DerOctetString derOctetString = new DerOctetString(POLICY_HASH); String algId = DigestAlgorithms.GetAllowedDigest(POLICY_DIGEST_ALGORITHM); DerObjectIdentifier asn1ObjectIdentifier = new DerObjectIdentifier(algId); AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(asn1ObjectIdentifier); OtherHashAlgAndValue otherHashAlgAndValue = new OtherHashAlgAndValue(algorithmIdentifier, derOctetString); DerObjectIdentifier objectIdentifier = new DerObjectIdentifier(POLICY_IDENTIFIER); DerObjectIdentifier objectIdentifierInstance = DerObjectIdentifier.GetInstance(objectIdentifier); SignaturePolicyId signaturePolicyId = new SignaturePolicyId(objectIdentifierInstance, otherHashAlgAndValue , SignUtils.CreateSigPolicyQualifiers(sigPolicyQualifierInfo)); SignaturePolicyIdentifier expected = new SignaturePolicyIdentifier(signaturePolicyId); NUnit.Framework.Assert.AreEqual(expected.ToAsn1Object(), actual.ToAsn1Object()); }
internal virtual SignaturePolicyIdentifier ToSignaturePolicyIdentifier() { String algId = DigestAlgorithms.GetAllowedDigest(this.policyDigestAlgorithm); if (algId == null || algId.Length == 0) { throw new ArgumentException("Invalid policy hash algorithm"); } SignaturePolicyIdentifier signaturePolicyIdentifier = null; SigPolicyQualifierInfo spqi = null; if (this.policyUri != null && this.policyUri.Length > 0) { spqi = new SigPolicyQualifierInfo(Org.BouncyCastle.Asn1.Pkcs.PkcsObjectIdentifiers.IdSpqEtsUri, new DerIA5String (this.policyUri)); } signaturePolicyIdentifier = new SignaturePolicyIdentifier(new SignaturePolicyId(DerObjectIdentifier.GetInstance (new DerObjectIdentifier(this.policyIdentifier.Replace("urn:oid:", ""))), new OtherHashAlgAndValue(new AlgorithmIdentifier(new DerObjectIdentifier(algId)), new DerOctetString(this.policyHash)), SignUtils.CreateSigPolicyQualifiers (spqi))); return(signaturePolicyIdentifier); }