1 =pod 2 3 =head1 NAME 4 5 EVP_CIPHER-SM4 - The SM4 EVP_CIPHER implementations 6 7 =head1 DESCRIPTION 8 9 Support for SM4 symmetric encryption using the B<EVP_CIPHER> API. 10 11 =head2 Algorithm Names 12 13 The following algorithms are available in the default provider: 14 15 =over 4 16 17 =item "SM4-CBC:SM4" 18 19 =item "SM4-ECB" 20 21 =item "SM4-CTR" 22 23 =item "SM4-OFB" or "SM4-OFB128" 24 25 =item "SM4-CFB" or "SM4-CFB128" 26 27 =item "SM4-GCM" 28 29 =item "SM4-CCM" 30 31 =item "SM4-XTS" 32 33 =back 34 35 =head2 Parameters 36 37 This implementation supports the parameters described in 38 L<EVP_EncryptInit(3)/PARAMETERS>. 39 40 =head1 NOTES 41 42 The SM4-XTS implementation allows streaming to be performed, but each 43 L<EVP_EncryptUpdate(3)> or L<EVP_DecryptUpdate(3)> call requires each input 44 to be a multiple of the blocksize. Only the final EVP_EncryptUpdate() or 45 EVP_DecryptUpdate() call can optionally have an input that is not a multiple 46 of the blocksize but is larger than one block. In that case ciphertext 47 stealing (CTS) is used to fill the block. 48 49 =head1 SEE ALSO 50 51 L<provider-cipher(7)>, L<OSSL_PROVIDER-default(7)> 52 53 =head1 COPYRIGHT 54 55 Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. 56 57 Licensed under the Apache License 2.0 (the "License"). You may not use 58 this file except in compliance with the License. You can obtain a copy 59 in the file LICENSE in the source distribution or at 60 L<https://www.openssl.org/source/license.html>. 61 62 =cut 63