XU XUv0.8.8
EN

API

#crypto/sm4

import: #crypto/sm4

counts: 13 函数, 3 方法, 1 类型, 1 常量, 0 方法集

SM4 单块与 CBC/CTR/CFB/OFB/GCM。零 C、非商密认证。

const block_size

XuAPI
pub const block_size = 16

用途

公开常量 `block_size`。 值为 `16`

参数

无

struct Cipher

XuAPI
pub struct Cipher {
    pub rk []int
    pub sbox []int
}

用途

公开结构体 `Cipher`。

参数

rk []int
字段([]int)
sbox []int
字段([]int)

new_cipher

XuAPI
pub fn new_cipher(key &string) Cipher

用途

构造 cipher。失败时 throw。

参数

key &string
键(借用,调用方仍持有;类型 &string)

返回

Cipher — 该类型的值

(&Cipher) block_size

XuAPI
pub fn (c &Cipher) block_size() int

用途

`&Cipher` 上的方法:块尺寸。

参数

c &Cipher
接收者 &Cipher(借用)

返回

int — 该类型的值

(&Cipher) encrypt

XuAPI
pub fn (c &Cipher) encrypt(src &string) string

用途

`&Cipher` 上的方法:加密。失败时 throw。

参数

c &Cipher
接收者 &Cipher(借用)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

(&Cipher) decrypt

XuAPI
pub fn (c &Cipher) decrypt(src &string) string

用途

`&Cipher` 上的方法:解密。失败时 throw。

参数

c &Cipher
接收者 &Cipher(借用)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

seal_gcm

XuAPI
pub fn seal_gcm(c &Cipher, nonce &string, plaintext &string, aad &string) string

用途

封装GCM。失败时 throw。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
nonce &string
nonce(借用,调用方仍持有;类型 &string)
plaintext &string
plaintext(借用,调用方仍持有;类型 &string)
aad &string
aad(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

open_gcm

XuAPI
pub fn open_gcm(c &Cipher, nonce &string, sealed &string, aad &string) string

用途

打开GCM。失败时 throw。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
nonce &string
nonce(借用,调用方仍持有;类型 &string)
sealed &string
sealed(借用,调用方仍持有;类型 &string)
aad &string
aad(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

encrypt_cbc

XuAPI
pub fn encrypt_cbc(c &Cipher, iv &string, src &string) string

用途

加密CBC。失败时 throw。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_cbc

XuAPI
pub fn decrypt_cbc(c &Cipher, iv &string, src &string) string

用途

解密CBC。失败时 throw。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

encrypt_cbc_pkcs7

XuAPI
pub fn encrypt_cbc_pkcs7(c &Cipher, iv &string, src &string) string

用途

加密CBCPKCS7。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_cbc_pkcs7

XuAPI
pub fn decrypt_cbc_pkcs7(c &Cipher, iv &string, src &string) string

用途

解密CBCPKCS7。失败时 throw。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

encrypt_ctr

XuAPI
pub fn encrypt_ctr(c &Cipher, iv &string, src &string) string

用途

加密CTR。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_ctr

XuAPI
pub fn decrypt_ctr(c &Cipher, iv &string, src &string) string

用途

解密CTR。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

encrypt_cfb

XuAPI
pub fn encrypt_cfb(c &Cipher, iv &string, src &string) string

用途

加密CFB。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_cfb

XuAPI
pub fn decrypt_cfb(c &Cipher, iv &string, src &string) string

用途

解密CFB。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

encrypt_ofb

XuAPI
pub fn encrypt_ofb(c &Cipher, iv &string, src &string) string

用途

加密OFB。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_ofb

XuAPI
pub fn decrypt_ofb(c &Cipher, iv &string, src &string) string

用途

解密OFB。

参数

c &Cipher
字节或字符码(借用,调用方仍持有;类型 &Cipher)
iv &string
整数载荷或初始向量(借用,调用方仍持有;类型 &string)
src &string
源数据(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串