Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/sha1.h
39478 views
1
/* $KAME: sha1.h,v 1.5 2000/03/27 04:36:23 sumikawa Exp $ */
2
3
/*-
4
* SPDX-License-Identifier: BSD-3-Clause
5
*
6
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
7
* All rights reserved.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
* 3. Neither the name of the project nor the names of its contributors
18
* may be used to endorse or promote products derived from this software
19
* without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
* SUCH DAMAGE.
32
*/
33
/*
34
* FIPS pub 180-1: Secure Hash Algorithm (SHA-1)
35
* based on: http://csrc.nist.gov/fips/fip180-1.txt
36
* implemented by Jun-ichiro itojun Itoh <[email protected]>
37
*/
38
39
#ifndef _CRYPTO_SHA1_H_
40
#define _CRYPTO_SHA1_H_
41
42
struct sha1_ctxt {
43
union {
44
uint8_t b8[20];
45
uint32_t b32[5];
46
} h;
47
union {
48
uint8_t b8[8];
49
uint64_t b64[1];
50
} c;
51
union {
52
uint8_t b8[64];
53
uint32_t b32[16];
54
} m;
55
uint8_t count;
56
};
57
typedef struct sha1_ctxt SHA1_CTX;
58
59
#define SHA1_RESULTLEN (160/8)
60
61
#ifdef _KERNEL
62
extern void sha1_init(struct sha1_ctxt *);
63
extern void sha1_pad(struct sha1_ctxt *);
64
extern void sha1_loop(struct sha1_ctxt *, const uint8_t *, size_t);
65
extern void sha1_result(struct sha1_ctxt *, char[__min_size(SHA1_RESULTLEN)]);
66
67
/* compatibilty with other SHA1 source codes */
68
#define SHA1Init(x) sha1_init((x))
69
#define SHA1Update(x, y, z) sha1_loop((x), (y), (z))
70
#define SHA1Final(x, y) sha1_result((y), (x))
71
#endif /* _KERNEL */
72
73
#endif /*_CRYPTO_SHA1_H_*/
74
75