Domanda

http: / /msdn.microsoft.com/en-us/library/system.security.cryptography.pkcs(VS.85).aspx possiamo vedere che i seguenti attributi di firma digitale sono definite:

  • Pkcs9ContentType
  • Pkcs9DocumentDescription
  • Pkcs9DocumentName
  • Pkcs9MessageDigest
  • Pkcs9SigningTime

Di questi, Pkcs9DocumentDescription e Pkcs9DocumentName non sono presenti nel specifica PKCS # 9 . Ho un'applicazione Java che utilizza Bouncy Castle e voglio la mia app per essere in grado di creare le firme digitali che hanno questi due attributi.

Così, ho due domande: come farlo? Dovrei farlo?

È stato utile?

Soluzione

Dovrete costruire manualmente gli attributi utilizzando gli OID, in questo modo:

ObjectIdentifier dnOid = new ObjectIdentifier("1.3.6.1.4.1.311.88.2.1");
ObjectIdentifier ddOid = new ObjectIdentifier("1.3.6.1.4.1.311.88.2.2");
ASN1Set nameSet = new DERSet(new ASN1Encodable[] {new DERPrintableString("name")});
ASN1Set descriptionSet = new DERSet(new ASN1Encodable[] {new DERPrintableString("description"}));
Attribute documentName = new Attribute(dnOid, nameSet);
Attribute documentDescription = new Attribute(ddOid, descriptionSet);

Vorrei sottolineare che l'utilizzo DERPrintableString per il valore dell'attributo è la mia ipotesi migliore. Non riesco a trovare la documentazione per indicare il tipo corretto.

Per quanto riguarda il si dovrebbe , beh, non c'è niente di sbagliato con l'utilizzo di attributi che non sono da PKCS #9. Non ci si dovrebbe fare affidamento su un sistema esterno di essere in grado di usarli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top