1

弾む城では、KeyUsageから始まるDEROctetStringを作成できます。

それでは、DEROctetStringからKeyUsageを取得するにはどうすればよいですか?

例:

DEROctetString derString = new DEROctetString(new KeyUsage(KeyUsage.digitalSignature));
KeyUsage ku = ...(some code to get back KeyUsage starting from derString)...

KeyUsage拡張要求を使用して証明書要求を作成できるため、これが必要ですが、証明書要求だけでは、KeyUsage拡張を取り戻すことができません。

4

2 に答える 2

1

ASN1InputStreamを使用して解決策を見つけました:

ASN1InputStream ais = new ASN1InputStream(derOctetString.getOctetStream());
KeyUsage ku = new KeyUsage((DERBitString) ais.readObject());

それはうまくいきます!

于 2010-06-28T08:59:48.777 に答える
0

KeyUsageは、X.509ではこれとして定義されています。

 id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }

 KeyUsage ::= BIT STRING {
      digitalSignature        (0),
      nonRepudiation          (1),
      keyEncipherment         (2),
      dataEncipherment        (3),
      keyAgreement            (4),
      keyCertSign             (5),
      cRLSign                 (6),
      encipherOnly            (7),
      decipherOnly            (8) }

したがって、そのためにオクテット文字列を作成するのは間違っています。DERBitStringを作成する場合、KeyUsageにはそのコンストラクターがあります。

于 2010-06-28T00:36:16.133 に答える