diff --git a/doc/man3/EVP_EncryptInit.pod b/doc/man3/EVP_EncryptInit.pod index 2b75b71b048dd1..a982709e8ebda1 100644 --- a/doc/man3/EVP_EncryptInit.pod +++ b/doc/man3/EVP_EncryptInit.pod @@ -993,6 +993,40 @@ Byte 11-12: Input length (Always 0) "tls1multi_interleave" must also be set for this operation. +=item "xts_standard" (B) + +Sets the XTS standard to use with SM4-XTS algorithm. XTS mode has two +implementations, one is standardized in IEEE Std. 1619-2007 and has +been widely used (e.g., XTS AES), the other is proposed recently +(GB/T 17964-2021 implemented in May 2022) and is currently only used +in SM4. + +The main difference between them is the multiplication by the +primitive element E to calculate the tweak values. The IEEE +Std 1619-2007 noted that the multiplication "is a left shift of each +byte by one bit with carry propagating from one byte to the next +one", which means that in each byte, the leftmost bit is the most +significant bit. But in GB/T 17964-2021, the rightmost bit is the +most significant bit, thus the multiplication becomes a right shift +of each byte by one bit with carry propagating from one byte to the +next one. + +Valid values for the mode are: + +=over 4 + +=item "GB" + +The GB/T 17964-2021 variant of SM4-XTS algorithm. + +=item "IEEE" + +The IEEE Std. 1619-2007 variant of SM4-XTS algorithm. + +=back + +The default value is "GB". + =back =head1 CONTROLS diff --git a/doc/man7/EVP_CIPHER-SM4.pod b/doc/man7/EVP_CIPHER-SM4.pod index 36a51d18a4238a..b0c292757e77f1 100644 --- a/doc/man7/EVP_CIPHER-SM4.pod +++ b/doc/man7/EVP_CIPHER-SM4.pod @@ -24,6 +24,12 @@ The following algorithms are available in the default provider: =item "SM4-CFB" or "SM4-CFB128" +=item "SM4-GCM" + +=item "SM4-CCM" + +=item "SM4-XTS" + =back =head2 Parameters