1 /* 2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #include <stdio.h> 11 #include <string.h> 12 #include <openssl/crypto.h> 13 #include <openssl/sha.h> 14 15 unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md) 16 { 17 SHA_CTX c; 18 static unsigned char m[SHA_DIGEST_LENGTH]; 19 20 if (md == NULL) 21 md = m; 22 if (!SHA1_Init(&c)) 23 return NULL; 24 SHA1_Update(&c, d, n); 25 SHA1_Final(md, &c); 26 OPENSSL_cleanse(&c, sizeof(c)); 27 return md; 28 } 29