Я использую pkcs11 lib для этого, но я не могу найти атрибут, соответствующий универсальномуPrincipalName, которое я хочу сохранить в своей программе.Как получить объект universalPrincipalName с смарт-карты?
Вот результат от dumpasn1:
SEQUENCE {
OBJECT IDENTIFIER subjectAltName (52 565 529 177)
OCTET STRING, encapsulates {
SEQUENCE {
[0] {
OBJECT IDENTIFIER
universalPrincipalName (1 783 756 578 457 155 473 200 654 565)
[0] {
UTF8String 'thefo[email protected]'
}
}
Как я могу получить «[email protected]», чтобы сохранить это поле в переменной.
Я думаю, что нужно использовать CK_ATTRIBUTEs, но никто, кажется, не соответствует universalPrincipalName (т.е. «[email protected]»)
CK_ATTRIBUTE getattribute[] = {
{CKA_WHICH_ONE_TO_USE, NULL_PTR, 0}
};
C_GetAttributeValue(hSession, privKeyObject, getattribute, size);
ли C_GetAttributeValue право функции, чтобы получить эту информацию или может быть, есть еще один способ получить универсальное имяPrincipalName?
Я не знаю, как разбирать сертификат. Как я могу сказать, чтобы просто прочитать UPN из соответствующего идентификатора объекта? Есть функция, чтобы получить имя идентификатора объекта? – poloDD
С \t \t \t \t данные CK_ATTRIBUTE [2] = { \t \t \t \t \t {CKA_LABEL, NULL_PTR, 0}, \t \t \t \t \t {CKA_VALUE, NULL_PTR, 0}, \t \t \t \t}; Я получаю это от C_GetAttributeValue: data [1] .pValue = 0 0 Ġ8 [ j 0. Поэтому я не могу разобрать его, чтобы получить UPN. Нужно ли мне декодировать результат pValue? – poloDD