| sm2_encrypt_asna1 {smcryptoR} | R Documentation | 
SM2 Encrypt/Decrypt - asn.1
Description
According to the usage specifications of the SM2 algorithm, the encrypted data should be encoded using ASN.1, specifically including XCoordinate, YCoordinate, HASH, and CipherText. Among them, XCoordinate and YCoordinate each occupy 32 bytes, HASH occupies 32 bytes, and CipherText is the same length as the plaintext, plus a one-byte "04" identifier. After SM2 encryption and ASN.1 encoding, the ciphertext data will be 97 bytes longer than the original plaintext data.
Usage
sm2_encrypt_asna1(data, public_key)
sm2_decrypt_asna1(data, private_key)
Arguments
| data | data to be encrypted or decrypted, must be a raw vector | 
| public_key | a public key represented as a hexadecimal string | 
| private_key | a private key represented as a hexadecimal string | 
Value
- sm2_encrypt_asna1
- returns a raw vector of the cipher text in the asn.1 encoding 
- sm2_decrypt_asna1
- returns a raw vector of the plain text 
Examples
## encrypt and decrypt as asn.1
keypair <- sm2_gen_keypair()
private_key <- keypair$private_key
public_key <- keypair$public_key
data <- 'abc' |> charToRaw()
enc <- sm2_encrypt_asna1(data, public_key)
enc
dec <- sm2_decrypt_asna1(enc, private_key)
dec
[Package smcryptoR version 0.1.2 Index]