1e1051a39Sopenharmony_ci/* 2e1051a39Sopenharmony_ci * Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. 3e1051a39Sopenharmony_ci * 4e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License"). You may not use 5e1051a39Sopenharmony_ci * this file except in compliance with the License. You can obtain a copy 6e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at 7e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html 8e1051a39Sopenharmony_ci */ 9e1051a39Sopenharmony_ci 10e1051a39Sopenharmony_ci/* 11e1051a39Sopenharmony_ci * MD5 and SHA-1 low level APIs are deprecated for public use, but still ok for 12e1051a39Sopenharmony_ci * internal use. The prov/md5_sha1.h include requires this, but this must 13e1051a39Sopenharmony_ci * be the first include loaded. 14e1051a39Sopenharmony_ci */ 15e1051a39Sopenharmony_ci#include "internal/deprecated.h" 16e1051a39Sopenharmony_ci 17e1051a39Sopenharmony_ci#include "crypto/evp.h" 18e1051a39Sopenharmony_ci#include "prov/md5_sha1.h" /* diverse MD5_SHA1 macros */ 19e1051a39Sopenharmony_ci#include "legacy_meth.h" 20e1051a39Sopenharmony_ci 21e1051a39Sopenharmony_ciIMPLEMENT_LEGACY_EVP_MD_METH_LC(md5_sha1_int, ossl_md5_sha1) 22e1051a39Sopenharmony_cistatic int md5_sha1_int_ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms) 23e1051a39Sopenharmony_ci{ 24e1051a39Sopenharmony_ci return ossl_md5_sha1_ctrl(EVP_MD_CTX_get0_md_data(ctx), cmd, mslen, ms); 25e1051a39Sopenharmony_ci} 26e1051a39Sopenharmony_ci 27e1051a39Sopenharmony_cistatic const EVP_MD md5_sha1_md = { 28e1051a39Sopenharmony_ci NID_md5_sha1, 29e1051a39Sopenharmony_ci NID_md5_sha1, 30e1051a39Sopenharmony_ci MD5_SHA1_DIGEST_LENGTH, 31e1051a39Sopenharmony_ci 0, 32e1051a39Sopenharmony_ci EVP_ORIG_GLOBAL, 33e1051a39Sopenharmony_ci LEGACY_EVP_MD_METH_TABLE(md5_sha1_int_init, md5_sha1_int_update, 34e1051a39Sopenharmony_ci md5_sha1_int_final, md5_sha1_int_ctrl, 35e1051a39Sopenharmony_ci MD5_SHA1_CBLOCK), 36e1051a39Sopenharmony_ci}; 37e1051a39Sopenharmony_ci 38e1051a39Sopenharmony_ciconst EVP_MD *EVP_md5_sha1(void) 39e1051a39Sopenharmony_ci{ 40e1051a39Sopenharmony_ci return &md5_sha1_md; 41e1051a39Sopenharmony_ci} 42