質問

弾む城 KeyUSAGEから始まるDeroctetStringを作成できます。

次に、deroctetStringから始まるキーユーザーを取得するにはどうすればよいですか?

例:

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

KeyUSAGE拡張リクエストで証明書リクエストを作成できるため、これが必要ですが、証明書リクエストだけを考えると、KeyUSAGE拡張機能を取り戻すことができません。

役に立ちましたか?

解決

ASN1INPUTSTREAMを使用してソリューションを見つけました。

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

それはうまくいきます!

他のヒント

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) }

そのため、Octet Stringを作成するのは間違っています。 Derbitstringを作成すると、KeyUSAGEにはコンストラクターがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top