SM3: Add SM3 hash function
[oweals/openssl.git] / doc / man3 / SM3.pod
1 =pod
2
3 =head1 NAME
4
5 SM3_Init,
6 SM3_Update,
7 SM3_Final
8
9 =head1 SYNOPSIS
10
11  #include <openssl/sm3.h>
12
13  unsigned char *SM3(const unsigned char *d, size_t n, unsigned char *md);
14
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);
18
19 =head1 DESCRIPTION
20
21 SM3 is a cryptographic hash function with a 256-bit output, defined in GB/T
22 32905-2016.
23
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.
27
28 The following functions may be used if the message is not completely stored in
29 memory:
30
31 SM3_Init() initializes a B<SM3_CTX> structure.
32
33 SM3_Update() can be called repeatedly with chunks of the message to be hashed
34 (B<len> bytes at B<data>).
35
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>.
38
39 =head1 RETURN VALUES
40
41 =over 4
42
43 =item SM3()
44
45 Returns pointers to the hash value.
46
47 =item SM3_Init(), SM3_Update(), SM3_Final()
48
49 Returns 1 for success, 0 otherwise.
50
51 =back
52
53 =head1 NOTE
54
55 Applications should use the higher level functions such as L<EVP_DigestInit(3)>
56 instead of calling these functions directly.
57
58 =head1 CONFORMING TO
59
60 GB/T 32905-2016 and GM/T 0004-2012.
61
62 =head1 SEE ALSO
63
64 L<EVP_DigestInit(3)>
65
66 =head1 COPYRIGHT
67
68 Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
69 Copyright 2017 Ribose Inc. All Rights Reserved.
70
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>.
75
76 =cut