XU XUv0.8.8
EN

API

#crypto/sm2

import: #crypto/sm2

counts: 34 函数, 6 方法, 2 类型, 3 常量, 0 方法集

SM2:密钥、签名、加密、密钥交换。零 C、非商密认证。

const public_key_size

XuAPI
pub const public_key_size = 65

用途

公开常量 `public_key_size`。 值为 `65`

参数

无

const private_key_size

XuAPI
pub const private_key_size = 32

用途

公开常量 `private_key_size`。 值为 `32`

参数

无

const signature_size

XuAPI
pub const signature_size = 64

用途

公开常量 `signature_size`。 值为 `64`

参数

无

public

XuAPI
pub fn public(d &string) string

用途

公钥。失败时 throw。

参数

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

返回

string — 结果字符串

generate_key

XuAPI
pub fn generate_key() string

用途

生成键。失败时 throw。

参数

无

返回

string — 结果字符串

sign_id

XuAPI
pub fn sign_id(d &string, id &string, msg &string) string

用途

符号id。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
id &string
id(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

sign

XuAPI
pub fn sign(d &string, msg &string) string

用途

签名。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

verify_id

XuAPI
pub fn verify_id(pubk &string, id &string, msg &string, sig &string) bool

用途

验签id。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
id &string
id(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)
sig &string
sig(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

verify

XuAPI
pub fn verify(pubk &string, msg &string, sig &string) bool

用途

验签。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)
sig &string
sig(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

encrypt

XuAPI
pub fn encrypt(pubk &string, msg &string) string

用途

加密。失败时 throw。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt

XuAPI
pub fn decrypt(d &string, ct &string) string

用途

解密。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
ct &string
ct(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

marshal_sig

XuAPI
pub fn marshal_sig(sig &string) string

用途

编码写出sig。失败时 throw。

参数

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

返回

string — 结果字符串

parse_sig

XuAPI
pub fn parse_sig(der &string) string

用途

解析为 sig。失败时 throw。

参数

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

返回

string — 结果字符串

sign_id_asn1

XuAPI
pub fn sign_id_asn1(d &string, id &string, msg &string) string

用途

符号idASN.1。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
id &string
id(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

sign_asn1

XuAPI
pub fn sign_asn1(d &string, msg &string) string

用途

符号ASN.1。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

verify_id_asn1

XuAPI
pub fn verify_id_asn1(pubk &string, id &string, msg &string, der &string) bool

用途

验签idASN.1。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
id &string
id(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)
der &string
der(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

verify_asn1

XuAPI
pub fn verify_asn1(pubk &string, msg &string, der &string) bool

用途

验签ASN.1。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)
der &string
der(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

encrypt_asn1

XuAPI
pub fn encrypt_asn1(pubk &string, msg &string) string

用途

加密ASN.1。失败时 throw。

参数

pubk &string
pubk(借用,调用方仍持有;类型 &string)
msg &string
消息(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

decrypt_asn1

XuAPI
pub fn decrypt_asn1(d &string, der &string) string

用途

解密ASN.1。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
der &string
der(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

struct ExchCap

XuAPI
pub struct ExchCap {
    pub point string
    pub mac string
    pub key string
}

用途

公开结构体 `ExchCap`。

参数

point string
字段(string)
mac string
字段(string)
key string
键

struct Exch

XuAPI
pub struct Exch {

}

用途

公开结构体 `Exch`。

参数

无

exch_new

XuAPI
pub fn exch_new(d &string, peer_pub &string, uid &string, peer &string, klen int, gen_sig bool) Exch

用途

exchnew。失败时 throw。

参数

d &string
d(借用,调用方仍持有;类型 &string)
peer_pub &string
peer_pub(借用,调用方仍持有;类型 &string)
uid &string
uid(借用,调用方仍持有;类型 &string)
peer &string
peer(借用,调用方仍持有;类型 &string)
klen int
klen(int)
gen_sig bool
gen_sig(bool)

返回

Exch — 该类型的值

(&mut Exch) init_r

XuAPI
pub fn (e &mut Exch) init_r(r &string) string

用途

`&mut Exch` 上的方法:initr。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)
r &string
rune(Unicode 码点)(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

(&mut Exch) init

XuAPI
pub fn (e &mut Exch) init() string

用途

在 `&mut Exch` 上调用 `init`。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)

返回

string — 结果字符串

(&mut Exch) respond_r

XuAPI
pub fn (e &mut Exch) respond_r(r &string, ra &string) ExchCap

用途

`&mut Exch` 上的方法:respondr。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)
r &string
rune(Unicode 码点)(借用,调用方仍持有;类型 &string)
ra &string
ra(借用,调用方仍持有;类型 &string)

返回

ExchCap — 该类型的值

(&mut Exch) respond

XuAPI
pub fn (e &mut Exch) respond(ra &string) ExchCap

用途

在 `&mut Exch` 上调用 `respond`。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)
ra &string
ra(借用,调用方仍持有;类型 &string)

返回

ExchCap — 该类型的值

(&mut Exch) confirm_responder

XuAPI
pub fn (e &mut Exch) confirm_responder(rb &string, sb &string) ExchCap

用途

`&mut Exch` 上的方法:confirmresponder。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)
rb &string
rb(借用,调用方仍持有;类型 &string)
sb &string
sb(借用,调用方仍持有;类型 &string)

返回

ExchCap — 该类型的值

(&mut Exch) confirm_initiator

XuAPI
pub fn (e &mut Exch) confirm_initiator(sa &string) string

用途

`&mut Exch` 上的方法:confirminitiator。失败时 throw。

参数

e &mut Exch
接收者 &mut Exch(可变借用)
sa &string
sa(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

nist_generate_key

XuAPI
pub fn nist_generate_key(curve int) string

用途

nist生成键。失败时 throw。

参数

curve int
curve(int)

返回

string — 结果字符串

nist_public

XuAPI
pub fn nist_public(curve int, private_key &string) string

用途

nist公钥。失败时 throw。

参数

curve int
curve(int)
private_key &string
private_key(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

nist_check_public

XuAPI
pub fn nist_check_public(curve int, public_key &string) int

用途

nistcheck公钥。失败时 throw。

参数

curve int
curve(int)
public_key &string
public_key(借用,调用方仍持有;类型 &string)

返回

int — 该类型的值

nist_ecdh

XuAPI
pub fn nist_ecdh(curve int, private_key &string, peer_public &string) string

用途

nistecdh。失败时 throw。

参数

curve int
curve(int)
private_key &string
private_key(借用,调用方仍持有;类型 &string)
peer_public &string
peer_public(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

nist_sign_asn1

XuAPI
pub fn nist_sign_asn1(curve int, private_key &string, hash &string) string

用途

nist符号ASN.1。失败时 throw。

参数

curve int
curve(int)
private_key &string
private_key(借用,调用方仍持有;类型 &string)
hash &string
hash(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

verify_p256_asn1

XuAPI
pub fn verify_p256_asn1(public_key &string, hash &string, signature &string) bool

用途

验签p256ASN.1。

参数

public_key &string
public_key(借用,调用方仍持有;类型 &string)
hash &string
hash(借用,调用方仍持有;类型 &string)
signature &string
signature(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

verify_p384_asn1

XuAPI
pub fn verify_p384_asn1(public_key &string, hash &string, signature &string) bool

用途

验签p384ASN.1。

参数

public_key &string
public_key(借用,调用方仍持有;类型 &string)
hash &string
hash(借用,调用方仍持有;类型 &string)
signature &string
signature(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

verify_p521_asn1

XuAPI
pub fn verify_p521_asn1(public_key &string, hash &string, signature &string) bool

用途

验签p521ASN.1。

参数

public_key &string
public_key(借用,调用方仍持有;类型 &string)
hash &string
hash(借用,调用方仍持有;类型 &string)
signature &string
signature(借用,调用方仍持有;类型 &string)

返回

bool — 是否成立

parse_private_key

XuAPI
pub fn parse_private_key(der &string) string

用途

解析为 private key。失败时 throw。

参数

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

返回

string — 结果字符串

marshal_sec1

XuAPI
pub fn marshal_sec1(d &string) string

用途

编码写出sec1。

参数

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

返回

string — 结果字符串

marshal_pkcs8

XuAPI
pub fn marshal_pkcs8(d &string) string

用途

编码写出PKCS#8。失败时 throw。

参数

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

返回

string — 结果字符串

parse_private_pem

XuAPI
pub fn parse_private_pem(text &string) string

用途

解析为 private pem。失败时 throw。

参数

text &string
文本(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

marshal_pkcs8_pem

XuAPI
pub fn marshal_pkcs8_pem(d &string) string

用途

编码写出PKCS#8PEM。失败时 throw。

参数

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

返回

string — 结果字符串

parse_public_key

XuAPI
pub fn parse_public_key(der &string) string

用途

解析为 public key。失败时 throw。

参数

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

返回

string — 结果字符串

marshal_pkix

XuAPI
pub fn marshal_pkix(pubk &string) string

用途

编码写出pkix。失败时 throw。

参数

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

返回

string — 结果字符串

parse_public_pem

XuAPI
pub fn parse_public_pem(text &string) string

用途

解析为 public pem。失败时 throw。

参数

text &string
文本(借用,调用方仍持有;类型 &string)

返回

string — 结果字符串

marshal_pkix_pem

XuAPI
pub fn marshal_pkix_pem(pubk &string) string

用途

编码写出pkixPEM。失败时 throw。

参数

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

返回

string — 结果字符串