Module java.base

Class GCMParameterSpec

java.lang.Object
javax.crypto.spec.GCMParameterSpec
所有实现的接口:
AlgorithmParameterSpec

public class GCMParameterSpec extends Object implements AlgorithmParameterSpec
指定了使用Galois/Counter Mode (GCM)模式的Cipher所需的参数集。

简单的块密码模式(如CBC)通常只需要一个初始化向量(如IvParameterSpec),但GCM需要以下参数:

  • IV: 初始化向量 (IV)
  • tLen: 认证标签 T 的长度(以位为单位)

除了这里描述的参数外,其他GCM输入/输出(附加认证数据 (AAD)、密钥、块密码、明文/密文和认证标签)在 Cipher类中处理。

请参阅 RFC 5116 以获取有关带有关联数据的认证加密算法(AEAD)的更多信息,以及 NIST Special Publication 800-38D,“NIST Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC.”

GCM规范规定tLen只能具有值{128, 120, 112, 104, 96},或者对于某些应用程序为{64, 32}。可以为此类指定其他值,但并非所有CSP实现都将支持它们。

自从:
1.7
参见:
  • Constructor Summary

    Constructors
    Constructor
    Description
    GCMParameterSpec(int tLen, byte[] src)
    使用指定的认证标签位长度和IV缓冲区构造一个GCMParameterSpec。
    GCMParameterSpec(int tLen, byte[] src, int offset, int len)
    使用指定的认证标签位长度和指定缓冲区的子集作为IV构造一个GCMParameterSpec对象。
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    getIV()
    返回初始化向量(IV)。
    int
    返回认证标签长度。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GCMParameterSpec

      public GCMParameterSpec(int tLen, byte[] src)
      使用指定的认证标签位长度和IV缓冲区构造一个GCMParameterSpec。
      参数:
      tLen - 认证标签长度(以位为单位)
      src - IV源缓冲区。缓冲区的内容将被复制以防止后续修改。
      抛出:
      IllegalArgumentException - 如果tLen为负数,或src为null。
    • GCMParameterSpec

      public GCMParameterSpec(int tLen, byte[] src, int offset, int len)
      使用指定的认证标签位长度和指定缓冲区的子集作为IV构造一个GCMParameterSpec对象。
      参数:
      tLen - 认证标签长度(以位为单位)
      src - IV源缓冲区。缓冲区的内容将被复制以防止后续修改。
      offset - IV在src中的偏移量
      len - IV字节数
      抛出:
      IllegalArgumentException - 如果tLen为负数,src为null,lenoffset为负数,或offsetlen的总和大于src字节数组的长度。
  • Method Details

    • getTLen

      public int getTLen()
      返回认证标签长度。
      返回:
      认证标签长度(以位为单位)
    • getIV

      public byte[] getIV()
      返回初始化向量(IV)。
      返回:
      IV。每次调用此方法时都会创建一个新数组。