Объединить пользовательский атрибут X509Name с сертификатом - PullRequest
0 голосов
/ 25 января 2019

Я должен создать CSR, используя BouncyCastle в C # Мне нужна следующая тема:

"CN = Данные, O = Данные, OU = данные, title = Data , С = БО, dnQualifier = Cl, uidNumber = 1234567 , UID = ЛП, SerialNumber = 1234567018, emailAddress=test@mail.com "

Это два пользовательских значения: "title" и "uidNumber" и имеют следующий OID

title = 2.5.4.12 uidNumber = 1.3.6.1.1.1.1.0

Используя BouncyCastle в Net Core, я создаю тему:

DerObjectIdentifier uidNumber = new DerObjectIdentifier("1.3.6.1.1.1.1.0"); // My Try
IDictionary attrs = new Hashtable();
attrs[X509Name.CN] = "Name";
attrs[X509Name.O] = "Data";
attrs[X509Name.OU] = "IT";
attrs[X509Name.T] = "Data";
attrs[X509Name.C] = "XX";
attrs[X509Name.DnQualifier] = "CI";
attrs[X509Name.UID] = "PT";
attrs[X509Name.SerialNumber] = "123423222";
attrs[X509Name.EmailAddress] = "test@mail.com";
attrs[uidNumber] = "6572301"; //The custom attrib

IList ord = new ArrayList();
ord.Add(X509Name.CN);
ord.Add(X509Name.O);
ord.Add(X509Name.OU);
ord.Add(X509Name.T);
ord.Add(X509Name.C);
ord.Add(X509Name.DnQualifier);
ord.Add(X509Name.UID);
ord.Add(X509Name.SerialNumber);
ord.Add(X509Name.EmailAddress);
ord.Add(uidNumber); //Custom attrib

var subject = new X509Name(ord, attrs);

Когда я отлаживаю код, я вижу:

{CN = имя, O = данные, OU = IT, T = данные, C = XX, DN = CI, UID = PT, SERIALNUMBER = 123423222, E = test @ mail.com, 1.3.6.1 .1.1.1.0 = 6572301 }

У меня вопрос, как создать тему с правильным именем пользовательских атрибутов (включая значения их собственных OID)

...