Class EncryptionKey

java.lang.Object
javax.security.auth.kerberos.EncryptionKey
所有已实现的接口:
Serializable, Key, SecretKey, Destroyable

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

EncryptionKey在Kerberos协议规范的第4.2.9节中定义如下:

     EncryptionKey   ::= SEQUENCE {
             keytype         [0] Int32 -- 实际上是加密类型 --,
             keyvalue        [1] OCTET STRING
     }
 
EncryptionKey的密钥材料定义为上述keyValue的值。
自:
9
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    EncryptionKey(byte[] keyBytes, int keyType)
    从给定的字节和密钥类型构造一个EncryptionKey
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    通过清除此密钥的密钥材料来销毁此密钥。
    boolean
    equals(Object other)
    将指定的对象与此密钥进行比较以检查是否相等。
    返回此密钥的标准算法名称。
    byte[]
    返回此密钥的密钥材料。
    返回此密钥的编码格式名称。
    int
    返回此密钥的密钥类型。
    int
    返回此EncryptionKey的哈希码。
    返回此EncryptionKey的信息性文本表示。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods declared in interface javax.security.auth.Destroyable

    isDestroyed
  • Constructor Details

    • EncryptionKey

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

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

      参数:
      keyBytes - 密钥的密钥材料
      keyType - 由Kerberos协议规范定义的密钥类型
      抛出:
      NullPointerException - 如果keyBytes为null
  • Method Details

    • getKeyType

      public int getKeyType()
      返回此密钥的密钥类型。
      返回:
      密钥类型。
      抛出:
      IllegalStateException - 如果密钥已销毁
    • getAlgorithm

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

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

      1. none: 对于etype等于0
      2. unknown: 对于etype大于0但不受实现支持
      3. private: 对于etype小于0
      指定者:
      getAlgorithm 在接口 Key
      返回:
      与此密钥关联的算法名称。
      抛出:
      IllegalStateException - 如果密钥已销毁
    • getFormat

      public String getFormat()
      返回此密钥的编码格式名称。
      指定者:
      getFormat 在接口 Key
      返回:
      字符串"RAW"
      抛出:
      IllegalStateException - 如果密钥已销毁
    • getEncoded

      public byte[] getEncoded()
      返回此密钥的密钥材料。
      指定者:
      getEncoded 在接口 Key
      返回:
      包含密钥材料的新分配的字节数组
      抛出:
      IllegalStateException - 如果密钥已销毁
    • destroy

      public void destroy() throws DestroyFailedException
      通过清除此密钥的密钥材料来销毁此密钥。
      指定者:
      destroy 在接口 Destroyable
      抛出:
      DestroyFailedException - 如果销毁此密钥时发生错误
    • toString

      public String toString()
      返回此EncryptionKey的信息性文本表示。
      覆盖:
      toString 在类 Object
      返回:
      EncryptionKey的信息性文本表示。
    • hashCode

      public int hashCode()
      返回此EncryptionKey的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      EncryptionKey的哈希码。
      参见:
    • equals

      public boolean equals(Object other)
      比较指定的对象与此密钥是否相等。如果给定对象也是一个EncryptionKey并且两个EncryptionKey实例是等价的,则返回true。更正式地说,如果两个EncryptionKey实例具有相同的密钥类型和密钥材料,则它们是相等的。已销毁的EncryptionKey对象仅等于其自身。
      覆盖:
      equals 在类 Object
      参数:
      other - 要比较的对象
      返回:
      如果指定的对象等于此EncryptionKey,则返回true;否则返回false。
      参见: