gmkitx API - v0.10.1
    正在准备搜索索引...

    变量 zuc常量

    zuc: {
        ZUCState: any;
        ZUC: typeof ZUC;
        decrypt(
            key: BytesLike,
            iv: BytesLike,
            ciphertext: BytesLike,
            options?: ZUCDecryptOptions,
        ): string;
        decryptBytes(
            key: BytesLike,
            iv: BytesLike,
            ciphertext: BytesLike,
            options?: ZUCDecryptOptions,
        ): Uint8Array;
        eea3(
            key: BytesLike,
            count: number,
            bearer: number,
            direction: number,
            length: number,
        ): string;
        eea3Encrypt(
            key: BytesLike,
            count: number,
            bearer: number,
            direction: number,
            message: string | Uint8Array<ArrayBufferLike>,
            bitLength?: number,
        ): string;
        eia3(
            key: BytesLike,
            count: number,
            bearer: number,
            direction: number,
            message: string | Uint8Array<ArrayBufferLike>,
            bitLength?: number,
        ): string;
        encrypt(
            key: BytesLike,
            iv: BytesLike,
            plaintext: string | Uint8Array<ArrayBufferLike>,
            options?: ZUCOptions,
        ): string;
        generateKeystream(
            key: string | Uint8Array<ArrayBufferLike>,
            iv: string | Uint8Array<ArrayBufferLike>,
            length: number,
        ): Uint32Array;
        getKeystream(key: BytesLike, iv: BytesLike, length: number): string;
        getKeystreamWords(key: BytesLike, iv: BytesLike, length: number): string;
    } = ...

    ZUC 流密码算法模块(含 EEA3 加密 / EIA3 完整性算法)。 聚合所有具名函数与对象式入口 ZUCClass

    类型声明

    • ZUC: typeof ZUC

      ZUC 对象式 API,实例保存 128 位 key 与 IV。

    • decrypt: function
      • 使用 ZUC-128 流密码解密数据

        参数

        • key: BytesLike

          128-bit key (16 bytes or 32 hex chars) / 128 位密钥

        • iv: BytesLike

          128-bit IV (16 bytes or 32 hex chars) / 128 位初始向量

        • ciphertext: BytesLike

          Encrypted data (hex or base64 string, auto-detected) / 加密的数据(十六进制或 base64,自动检测)

        • 可选options: ZUCDecryptOptions

          字符串输入编码;省略时优先识别 Hex,再识别 Base64

        返回 string

        Decrypted data as string / 解密后的数据

        // 自动检测输入格式
        const decrypted = decrypt(key, iv, encrypted);
    • decryptBytes: function
      • 使用 ZUC-128 解密为原始字节;文本 API 无法无损表示任意二进制数据。

        参数

        • key: BytesLike

          16 字节密钥或 32 个 Hex 字符

        • iv: BytesLike

          16 字节 IV 或 32 个 Hex 字符

        • ciphertext: BytesLike

          Hex/Base64 字符串或原始密文字节

        • 可选options: ZUCDecryptOptions

          字符串输入编码;省略时自动识别

        返回 Uint8Array

        与密文等长的原始明文字节

        key、IV、编码或长度无效时抛出错误

    • eea3: function
      • 生成 EEA3 密钥流(用于 LTE 加密) 优化:单次分配 IV 缓冲区

        参数

        • key: BytesLike

          128 位保密密钥

        • count: number

          32 位计数值

        • bearer: number

          5 位承载标识

        • direction: number

          1 位方向标志(0 表示上行,1 表示下行)

        • length: number

          需要生成的密钥流比特长度

        返回 string

        EEA3 密钥流

    • eea3Encrypt: function
      • 按 3GPP EEA3 规范加密消息。旧 eea3 继续返回字对齐密钥流以保持兼容。

        参数

        • key: BytesLike

          16 字节保密密钥

        • count: number

          32 位计数值

        • bearer: number

          0 到 31 的承载标识

        • direction: number

          方向标志,只能为 0 或 1

        • message: string | Uint8Array<ArrayBufferLike>

          待加密消息;字符串按 UTF-8

        • 可选bitLength: number

          参与加密的消息 bit 数;省略时使用全部字节

        返回 string

        小写 Hex 密文;末字节未使用 bit 清零

        参数范围或 bitLength 无效时抛出错误

    • eia3: function
      • 生成 EIA3 完整性标签(用于 LTE 认证)

        参数

        • key: BytesLike

          128 位完整性密钥

        • count: number

          32 位计数值

        • bearer: number

          5 位承载标识

        • direction: number

          1 位方向标志(0 表示上行,1 表示下行)

        • message: string | Uint8Array<ArrayBufferLike>

          待认证的消息

        • 可选bitLength: number

          参与认证的消息 bit 数;省略时使用全部字节

        返回 string

        32 位 MAC-I(十六进制字符串)

    • encrypt: function
      • 使用 ZUC-128 流密码加密数据

        参数

        • key: BytesLike

          128-bit key (16 bytes or 32 hex chars) / 128 位密钥

        • iv: BytesLike

          128-bit IV (16 bytes or 32 hex chars) / 128 位初始向量

        • plaintext: string | Uint8Array<ArrayBufferLike>

          Data to encrypt (string or Uint8Array) / 要加密的数据

        • 可选options: ZUCOptions

          Encryption options / 加密选项

        返回 string

        Encrypted data (default hex string) / 加密后的数据(默认十六进制字符串)

        // 默认 hex 格式(向后兼容)
        const encrypted = encrypt(key, iv, 'data');
        // Base64 格式
        const encrypted = encrypt(key, iv, 'data', { outputFormat: OutputFormat.BASE64 });
    • generateKeystream: function
      • 生成 ZUC-128 密钥流

        参数

        • key: string | Uint8Array<ArrayBufferLike>

          128 位密钥(16 字节或 32 个十六进制字符)

        • iv: string | Uint8Array<ArrayBufferLike>

          128 位初始向量(16 字节或 32 个十六进制字符)

        • length: number

          需要输出的 32 位密钥字数量

        返回 Uint32Array

        32 位密钥字数组

    • getKeystream: function
      • 生成 ZUC-128 密钥流(按字节长度)

        参数

        • key: BytesLike

          16 字节密钥或 32 个 Hex 字符

        • iv: BytesLike

          16 字节 IV 或 32 个 Hex 字符

        • length: number

          需要生成的字节长度

        返回 string

        固定返回小写 Hex,字符数为 length 的两倍

        key、IV 或 length 无效时抛出错误

    • getKeystreamWords: function
      • 生成 ZUC-128 密钥流

        参数

        • key: BytesLike

          128 位密钥(16 字节或 32 个十六进制字符)

        • iv: BytesLike

          128 位初始向量(16 字节或 32 个十六进制字符)

        • length: number

          需要生成的 32 位字数量

        返回 string

        十六进制字符串形式的密钥流