模块 java.base

接口 Extension


public interface Extension
此接口表示 X.509 扩展。

扩展提供了一种将附加属性与用户或公钥相关联并用于管理证书层次结构的方法。扩展格式还允许社区定义私有扩展来携带这些社区独有的信息。

每个扩展都包含一个对象标识符、一个表明它是关键扩展还是非关键扩展的关键性设置,以及一个 ASN.1 DER 编码值。它的 ASN.1 定义是:

   Extension ::= SEQUENCE {
     extnId    OBJECT IDENTIFIER,
     critical   BOOLEAN DEFAULT FALSE,
     extnValue   OCTET STRING
         -- contains a DER encoding of a value
         -- of the type registered for use with
         -- the extnId object identifier value
   }

 

此接口旨在提供对单个扩展的访问,不像 X509Extension 更适合访问一组扩展。

自从:
1.7
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    生成扩展的 DER 编码并将其写入输出流。
    获取扩展的对象标识符。
    byte[]
    获取扩展的 DER 编码值。
    boolean
    获取扩展的重要性设置。
  • 方法详情

    • getId

      String  getId()
      获取扩展的对象标识符。
      返回:
      作为字符串的对象标识符
    • isCritical

      boolean isCritical()
      获取扩展的重要性设置。
      返回:
      如果这是一个关键扩展,则为真。
    • getValue

      byte[] getValue()
      获取扩展的 DER 编码值。请注意,这是编码为 OCTET STRING 的字节。它不包括 OCTET STRING 标记和长度。
      返回:
      扩展值的副本,如果不存在扩展值,则为 null
    • encode

      void encode(OutputStream  out) throws IOException
      生成扩展的 DER 编码并将其写入输出流。
      参数:
      out - 输出流
      抛出:
      IOException - 编码或输出错误。
      NullPointerException - 如果 outnull