diff options
author | Ronald Tse <ronald.tse@ribose.com> | 2017-10-31 15:19:14 +1000 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2017-10-31 15:19:14 +1000 |
commit | f19a5ff9ab85313f5b30cfc9fbed3a2eea60a59d (patch) | |
tree | e93336cc7c31d2a41e19b1c906135a6ec91cabfc /crypto/include/internal/sm4.h | |
parent | ffd23209933ea0ad5543f15ca6303d63d8dac826 (diff) |
SM4: Add SM4 block cipher to EVP
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/4552)
Diffstat (limited to 'crypto/include/internal/sm4.h')
-rw-r--r-- | crypto/include/internal/sm4.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/crypto/include/internal/sm4.h b/crypto/include/internal/sm4.h new file mode 100644 index 0000000000..f1f157ef53 --- /dev/null +++ b/crypto/include/internal/sm4.h @@ -0,0 +1,37 @@ +/* + * Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2017 Ribose Inc. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +#ifndef HEADER_SM4_H +# define HEADER_SM4_H + +# include <openssl/opensslconf.h> +# include <openssl/e_os2.h> + +# ifdef OPENSSL_NO_SM4 +# error SM4 is disabled. +# endif + +# define SM4_ENCRYPT 1 +# define SM4_DECRYPT 0 + +# define SM4_BLOCK_SIZE 16 +# define SM4_KEY_SCHEDULE 32 + +typedef struct SM4_KEY_st { + uint32_t rk[SM4_KEY_SCHEDULE]; +} SM4_KEY; + +int SM4_set_key(const uint8_t *key, SM4_KEY *ks); + +void SM4_encrypt(const uint8_t *in, uint8_t *out, const SM4_KEY *ks); + +void SM4_decrypt(const uint8_t *in, uint8_t *out, const SM4_KEY *ks); + +#endif |