xref: /isa-l_crypto/sm3_mb/sm3_test_helper.c (revision 87dde3ad650cd28eb5a214cb0fb138f82da022dc)
1f36dbb84SChunyang Hui /**********************************************************************
2f36dbb84SChunyang Hui   Copyright(c) 2011-2019 Intel Corporation All rights reserved.
3f36dbb84SChunyang Hui 
4f36dbb84SChunyang Hui   Redistribution and use in source and binary forms, with or without
5f36dbb84SChunyang Hui   modification, are permitted provided that the following conditions
6f36dbb84SChunyang Hui   are met:
7f36dbb84SChunyang Hui     * Redistributions of source code must retain the above copyright
8f36dbb84SChunyang Hui       notice, this list of conditions and the following disclaimer.
9f36dbb84SChunyang Hui     * Redistributions in binary form must reproduce the above copyright
10f36dbb84SChunyang Hui       notice, this list of conditions and the following disclaimer in
11f36dbb84SChunyang Hui       the documentation and/or other materials provided with the
12f36dbb84SChunyang Hui       distribution.
13f36dbb84SChunyang Hui     * Neither the name of Intel Corporation nor the names of its
14f36dbb84SChunyang Hui       contributors may be used to endorse or promote products derived
15f36dbb84SChunyang Hui       from this software without specific prior written permission.
16f36dbb84SChunyang Hui 
17f36dbb84SChunyang Hui   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18f36dbb84SChunyang Hui   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19f36dbb84SChunyang Hui   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20f36dbb84SChunyang Hui   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21f36dbb84SChunyang Hui   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22f36dbb84SChunyang Hui   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23f36dbb84SChunyang Hui   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24f36dbb84SChunyang Hui   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25f36dbb84SChunyang Hui   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26f36dbb84SChunyang Hui   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27f36dbb84SChunyang Hui   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28f36dbb84SChunyang Hui **********************************************************************/
29f36dbb84SChunyang Hui 
30f36dbb84SChunyang Hui #include <stdio.h>
31f36dbb84SChunyang Hui #include <openssl/evp.h>
32f36dbb84SChunyang Hui 
33b923697dSMarcel Cornu void
sm3_ossl(const unsigned char * buf,size_t length,unsigned char * digest)34b923697dSMarcel Cornu sm3_ossl(const unsigned char *buf, size_t length, unsigned char *digest)
35f36dbb84SChunyang Hui {
36*87dde3adSTomasz Kantecki         unsigned int md_len = 0;
37f36dbb84SChunyang Hui 
38*87dde3adSTomasz Kantecki         const EVP_MD *md = EVP_sm3();
39*87dde3adSTomasz Kantecki         EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();
40*87dde3adSTomasz Kantecki 
41f36dbb84SChunyang Hui         EVP_DigestInit_ex(md_ctx, md, NULL);
42f36dbb84SChunyang Hui         EVP_DigestUpdate(md_ctx, buf, length);
43f36dbb84SChunyang Hui         EVP_DigestFinal_ex(md_ctx, digest, &md_len);
44f36dbb84SChunyang Hui         EVP_MD_CTX_free(md_ctx);
45f36dbb84SChunyang Hui }
46