| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- #!/bin/bash -x
 
- set -e
 
- gmssl sm4 -help
 
- # CBC
 
- echo hello | gmssl sm4 -cbc -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -cbc -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # CTR
 
- echo hello | gmssl sm4 -ctr -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -ctr -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # GCM IV length = 12
 
- echo hello | gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 112233445566778811223344 -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 112233445566778811223344 -in ciphertext.bin
 
- # GCM IV length = 1
 
- echo hello | gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 11 -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 11 -in ciphertext.bin
 
- # GCM IV length = 16
 
- echo hello | gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # GCM IV length = 32
 
- echo hello | gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 1122334455667788112233445566778811223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 1122334455667788112233445566778811223344556677881122334455667788 -in ciphertext.bin
 
- # CBC-SM3-HMAC
 
- echo hello | gmssl sm4 -cbc_sm3_hmac -encrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	-iv 11223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -cbc_sm3_hmac -decrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # CTR-SM3-HMAC
 
- echo hello | gmssl sm4 -ctr_sm3_hmac -encrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	-iv 11223344556677881122334455667788 -out ciphertext.bin
 
- gmssl sm4 -ctr_sm3_hmac -decrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # encrypt/decrypt long text file
 
- cat << EOF > plaintext.txt
 
- -----BEGIN CERTIFICATE-----
 
- MIICzzCCAnKgAwIBAgIFEzY5M3AwDAYIKoEcz1UBg3UFADAlMQswCQYDVQQGEwJD
 
- TjEWMBQGA1UECgwNQ0ZDQSBTTTIgT0NBMTAeFw0yMTA2MTEwOTA1MjBaFw0yNjA2
 
- MTkwODE2NTZaMIGRMQswCQYDVQQGEwJDTjEPMA0GA1UECAwG5YyX5LqsMQ8wDQYD
 
- VQQHDAbljJfkuqwxJzAlBgNVBAoMHuS4reWbvemTtuihjOiCoeS7veaciemZkOWF
 
- rOWPuDERMA8GA1UECwwITG9jYWwgUkExDDAKBgNVBAsMA1NTTDEWMBQGA1UEAwwN
 
- ZWJzc2VjLmJvYy5jbjBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABPsNUnoZQM9C
 
- SnvC57TbvdfyOTCuPOSlZmPAyxBKFj+Y1QH/xlubHdVf5XqHrO1jCDRi7aN5IKGX
 
- QF1492c803OjggEeMIIBGjAfBgNVHSMEGDAWgBRck1ggWiRzVhAbZFAQ7OmnygdB
 
- ETAMBgNVHRMBAf8EAjAAMEgGA1UdIARBMD8wPQYIYIEchu8qAQEwMTAvBggrBgEF
 
- BQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xNC5odG0wNwYDVR0f
 
- BDAwLjAsoCqgKIYmaHR0cDovL2NybC5jZmNhLmNvbS5jbi9TTTIvY3JsNTYxOC5j
 
- cmwwGAYDVR0RBBEwD4INZWJzc2VjLmJvYy5jbjAOBgNVHQ8BAf8EBAMCBsAwHQYD
 
- VR0OBBYEFJ6oFo/OrKgDhHFORpaq04kX7T1KMB0GA1UdJQQWMBQGCCsGAQUFBwMC
 
- BggrBgEFBQcDATAMBggqgRzPVQGDdQUAA0kAMEYCIQCvhSvbv5h6ERl1YcCLg+fz
 
- 9UleQbaPfBYwUjUD2dAHVQIhAMRC4k9S/mSC0UpUvCqh/DQC2Ui8Tccd5G2IgYSs
 
- cnUN
 
- -----END CERTIFICATE-----
 
- EOF
 
- # CBC
 
- gmssl sm4 -cbc -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -cbc -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # CTR
 
- gmssl sm4 -ctr -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -ctr -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # GCM IV length = 12
 
- gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 112233445566778811223344 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 112233445566778811223344 -in ciphertext.bin
 
- # GCM IV length = 1
 
- gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 11 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 11 -in ciphertext.bin
 
- # GCM IV length = 16
 
- gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # GCM IV length = 32
 
- gmssl sm4 -gcm -encrypt -key 11223344556677881122334455667788 -iv 1122334455667788112233445566778811223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -gcm -decrypt -key 11223344556677881122334455667788 -iv 1122334455667788112233445566778811223344556677881122334455667788 -in ciphertext.bin
 
- # CBC-SM3-HMAC
 
- gmssl sm4 -cbc_sm3_hmac -encrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	-iv 11223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -cbc_sm3_hmac -decrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- # CTR-SM3-HMAC
 
- gmssl sm4 -ctr_sm3_hmac -encrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	-iv 11223344556677881122334455667788 -in plaintext.txt -out ciphertext.bin
 
- gmssl sm4 -ctr_sm3_hmac -decrypt \
 
- 	-key 112233445566778811223344556677881122334455667788112233445566778811223344556677881122334455667788 \
 
- 	 -iv 11223344556677881122334455667788 -in ciphertext.bin
 
- rm -fr plaintext.txt
 
- rm -fr ciphertext.bin
 
 
  |