2016-08-19 1 views
1

私はpkcs11ライブラリを使用していますが、プログラムに保存するuniversalPrincipalNameに対応する属性が見つかりません。私は変数にそのフィールドを保存するために「[email protected]」取得できますかsmartPrincipalNameオブジェクトをスマートカードから取得する方法は?

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 '[email protected]' 
      } 
      } 

:ここ

はdumpasn1からの結果です。

私はCK_ATTRIBUTEsを使用する必要があると思いますが、どれもuniversalPrincipalNameに対応していないようにみえ(すなわち「[email protected]」)

CK_ATTRIBUTE getattribute[] = { 
      {CKA_WHICH_ONE_TO_USE, NULL_PTR, 0} 
    }; 

C_GetAttributeValue(hSession, privKeyObject, getattribute, size); 

この情報を取得するためにC_GetAttributeValue右機能ですかuniversalPrincipalNameを取得する別の方法がありますか?

答えて

1

UPNに定義されている標準のPKCS#11属性はありません。証明書全体(CKA_VALUE属性の証明書オブジェクト)を読み込み、それを自分で解析する必要があります。

+0

証明書を解析する方法がわかりません。どのようにすれば、対応するオブジェクト識別子からUPNを読み込むだけですか?オブジェクト識別子の名前を取得する機能はありますか? \t \t \t \t CK_ATTRIBUTEデータと – poloDD

+0

[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

関連する問題