11 #include <openssl/sm3.h>
13 unsigned char *SM3(const unsigned char *d, size_t n, unsigned char *md);
15 int SM3_Init(SM3_CTX *c);
16 int SM3_Update(SM3_CTX *c, const void *data, size_t len);
17 int SM3_Final(unsigned char *md, SM3_CTX *c);
21 SM3 is a cryptographic hash function with a 256-bit output, defined in GB/T
24 SM3() computes the SM3 message digest of the B<n> bytes at B<d> and places it
25 in B<md> (which must have space for SM3_DIGEST_LENGTH == 32 bytes of output).
26 If B<md> is NULL, the digest is placed in a static array.
28 The following functions may be used if the message is not completely stored in
31 SM3_Init() initializes a B<SM3_CTX> structure.
33 SM3_Update() can be called repeatedly with chunks of the message to be hashed
34 (B<len> bytes at B<data>).
36 SM3_Final() places the message digest in B<md>, which must have space for
37 B<SM3_DIGEST_LENGTH> == 32 bytes of output, and erases the B<SM3_CTX>.
45 Returns pointers to the hash value.
47 =item SM3_Init(), SM3_Update(), SM3_Final()
49 Returns 1 for success, 0 otherwise.
55 Applications should use the higher level functions such as L<EVP_DigestInit(3)>
56 instead of calling these functions directly.
60 GB/T 32905-2016 and GM/T 0004-2012.
68 Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
69 Copyright 2017 Ribose Inc. All Rights Reserved.
71 Licensed under the OpenSSL license (the "License"). You may not use
72 this file except in compliance with the License. You can obtain a copy
73 in the file LICENSE in the source distribution or at
74 L<https://www.openssl.org/source/license.html>.