Class EncryptionKey

  • All Implemented Interfaces:
    SerializableKeySecretKeyDestroyable


    public final class EncryptionKey
    extends Object
    implements SecretKey
    此类封装了Kerberos中使用的EncryptionKey。

    EncryptionKey在Kerberos协议规范( RFC 4120 )的第4.2.9节中定义为:

      EncryptionKey   ::= SEQUENCE {
                 keytype         [0] Int32 -- actually encryption type --,
                 keyvalue        [1] OCTET STRING
         } 
    EncryptionKey的关键材料定义为上述keyValue的值。
    从以下版本开始:
    9
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • EncryptionKey

        public EncryptionKey​(byte[] keyBytes,
                             int keyType)
        从给定的字节和键类型构造一个EncryptionKey

        字节数组的内容被复制; 字节数组的后续修改不影响新创建的密钥。

        参数
        keyBytes - 钥匙的关键材料
        keyType - 由Kerberos协议规范定义的密钥的密钥类型。
        异常
        NullPointerException - 如果keyBytes为空
    • 方法详细信息

      • getKeyType

        public int getKeyType​()
        返回此键的键类型。
        结果
        关键类型。
        异常
        IllegalStateException - 如果密钥被销毁
      • getAlgorithm

        public String getAlgorithm​()
        返回此键的标准算法名称。 算法名称是IANA Kerberos Encryption Type Numbers页面上定义的加密类型字符串。

        此方法可以返回IANA页面上未定义的以下值:

        1. 无:对于etype等于0
        2. 未知:对于etype大于0但不支持实现
        3. private:对于小于0的etype
        Specified by:
        getAlgorithm在接口 Key
        结果
        与该密钥相关联的算法的名称。
        异常
        IllegalStateException - 如果密钥被销毁
      • getFormat

        public String getFormat​()
        返回此键的编码格式的名称。
        Specified by:
        getFormat在接口 Key
        结果
        字符串“RAW”
        异常
        IllegalStateException - 如果密钥被销毁
      • getEncoded

        public byte[] getEncoded​()
        返回此键的关键材料。
        Specified by:
        getEncoded在接口 Key
        结果
        一个新分配的包含密钥材料的字节数组
        异常
        IllegalStateException - 如果密钥被销毁
      • isDestroyed

        public boolean isDestroyed​()
        描述从接口Destroyable复制
        确定这个 Object是否已被销毁。
        Specified by:
        isDestroyed在接口 Destroyable
        结果
        如果这个 Object已被销毁, Object true,否则为false。
      • toString

        public String toString​()
        返回此 EncryptionKey的内容丰富的文字表示。
        重写:
        toString中的 Object
        结果
        这个 EncryptionKey的内容丰富的文字表示。
      • equals

        public boolean equals​(Object other)
        将指定的对象与此键进行比较以获得相等性。 如果给定的对象也是EncryptionKey ,并且两个EncryptionKey实例是等价的,则返回true。 更正式地,两个EncryptionKey实例相等,如果它们具有相同的密钥类型和密钥材料。 一个销毁的EncryptionKey对象只能等于自己。
        重写:
        equalsObject
        参数
        other - 要比较的对象
        结果
        如果指定的对象等于这个 EncryptionKeyEncryptionKey true,否则为false。
        另请参见:
        Object.hashCode()HashMap