Come utilizzare Microsoft PKCS # 9 attribuisce SignerInfo in un'applicazione Java?
-
19-09-2019 - |
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?
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.