Вам придется вручную создавать атрибуты, используя OID, например:
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);
Я должен отметить, что использование DERPrintableString
для значения атрибута - моя лучшая догадка. Я не могу найти документацию для указания правильного типа.
Что касается , если вы , нет ничего плохого в использовании атрибутов, которые не из PKCS #9
. Вам просто не следует полагаться на то, что внешняя система сможет их использовать.