Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
nettle
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
5
Merge Requests
5
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Nettle
nettle
Commits
d22bac82
Commit
d22bac82
authored
Apr 25, 2014
by
Niels Möller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename *_DATA_SIZE to *_BLOCK_SIZE.
parent
1e79b722
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
127 additions
and
98 deletions
+127
-98
ChangeLog
ChangeLog
+4
-0
examples/nettle-benchmark.c
examples/nettle-benchmark.c
+5
-5
gosthash94.c
gosthash94.c
+4
-4
gosthash94.h
gosthash94.h
+4
-2
md2.c
md2.c
+7
-7
md2.h
md2.h
+6
-4
md4.h
md4.h
+4
-2
md5.c
md5.c
+1
-1
md5.h
md5.h
+4
-2
nettle-meta.h
nettle-meta.h
+1
-1
nettle.texinfo
nettle.texinfo
+18
-18
ripemd160.h
ripemd160.h
+4
-2
sha1.c
sha1.c
+1
-1
sha1.h
sha1.h
+4
-2
sha2.h
sha2.h
+14
-8
sha256.c
sha256.c
+1
-1
sha3-224.c
sha3-224.c
+2
-2
sha3-256.c
sha3-256.c
+2
-2
sha3-384.c
sha3-384.c
+2
-2
sha3-512.c
sha3-512.c
+2
-2
sha3.h
sha3.h
+13
-8
sha512-224-meta.c
sha512-224-meta.c
+1
-1
sha512-256-meta.c
sha512-256-meta.c
+1
-1
sha512.c
sha512.c
+2
-2
umac-set-key.c
umac-set-key.c
+1
-1
umac.h
umac.h
+5
-3
umac128.c
umac128.c
+5
-5
umac32.c
umac32.c
+2
-2
umac64.c
umac64.c
+3
-3
umac96.c
umac96.c
+4
-4
No files found.
ChangeLog
View file @
d22bac82
2014-04-25 Niels Möller <nisse@lysator.liu.se>
* All hash-related files: Renamed all _DATA_SIZE constants to
_BLOCK_SIZE, for consistency. Old names kept for backwards
compatibility.
* nettle.texinfo (CCM): Documentation for CCM mode, contributed by
Owen Kirby.
...
...
examples/nettle-benchmark.c
View file @
d22bac82
...
...
@@ -410,7 +410,7 @@ time_umac(void)
info
.
update
=
(
nettle_hash_update_func
*
)
umac32_update
;
info
.
data
=
data
;
display
(
"umac32"
,
"update"
,
UMAC_
DATA
_SIZE
,
display
(
"umac32"
,
"update"
,
UMAC_
BLOCK
_SIZE
,
time_function
(
bench_hash
,
&
info
));
umac64_set_key
(
&
ctx64
,
key
);
...
...
@@ -418,7 +418,7 @@ time_umac(void)
info
.
update
=
(
nettle_hash_update_func
*
)
umac64_update
;
info
.
data
=
data
;
display
(
"umac64"
,
"update"
,
UMAC_
DATA
_SIZE
,
display
(
"umac64"
,
"update"
,
UMAC_
BLOCK
_SIZE
,
time_function
(
bench_hash
,
&
info
));
umac96_set_key
(
&
ctx96
,
key
);
...
...
@@ -426,7 +426,7 @@ time_umac(void)
info
.
update
=
(
nettle_hash_update_func
*
)
umac96_update
;
info
.
data
=
data
;
display
(
"umac96"
,
"update"
,
UMAC_
DATA
_SIZE
,
display
(
"umac96"
,
"update"
,
UMAC_
BLOCK
_SIZE
,
time_function
(
bench_hash
,
&
info
));
umac128_set_key
(
&
ctx128
,
key
);
...
...
@@ -434,7 +434,7 @@ time_umac(void)
info
.
update
=
(
nettle_hash_update_func
*
)
umac128_update
;
info
.
data
=
data
;
display
(
"umac128"
,
"update"
,
UMAC_
DATA
_SIZE
,
display
(
"umac128"
,
"update"
,
UMAC_
BLOCK
_SIZE
,
time_function
(
bench_hash
,
&
info
));
}
...
...
@@ -677,7 +677,7 @@ static void
bench_sha1_compress
(
void
)
{
uint32_t
state
[
_SHA1_DIGEST_LENGTH
];
uint8_t
data
[
SHA1_
DATA
_SIZE
];
uint8_t
data
[
SHA1_
BLOCK
_SIZE
];
double
t
;
TIME_CYCLES
(
t
,
_nettle_sha1_compress
(
state
,
data
));
...
...
gosthash94.c
View file @
d22bac82
...
...
@@ -533,7 +533,7 @@ gosthash94_update (struct gosthash94_ctx *ctx,
/* fill partial block */
if
(
index
)
{
unsigned
left
=
GOSTHASH94_
DATA
_SIZE
-
index
;
unsigned
left
=
GOSTHASH94_
BLOCK
_SIZE
-
index
;
memcpy
(
ctx
->
message
+
index
,
msg
,
(
length
<
left
?
length
:
left
));
if
(
length
<
left
)
return
;
...
...
@@ -543,11 +543,11 @@ gosthash94_update (struct gosthash94_ctx *ctx,
msg
+=
left
;
length
-=
left
;
}
while
(
length
>=
GOSTHASH94_
DATA
_SIZE
)
while
(
length
>=
GOSTHASH94_
BLOCK
_SIZE
)
{
gost_compute_sum_and_hash
(
ctx
,
msg
);
msg
+=
GOSTHASH94_
DATA
_SIZE
;
length
-=
GOSTHASH94_
DATA
_SIZE
;
msg
+=
GOSTHASH94_
BLOCK
_SIZE
;
length
-=
GOSTHASH94_
BLOCK
_SIZE
;
}
if
(
length
)
{
...
...
gosthash94.h
View file @
d22bac82
...
...
@@ -72,14 +72,16 @@ extern "C" {
#define gosthash94_update nettle_gosthash94_update
#define gosthash94_digest nettle_gosthash94_digest
#define GOSTHASH94_
DATA
_SIZE 32
#define GOSTHASH94_
BLOCK
_SIZE 32
#define GOSTHASH94_DIGEST_SIZE 32
/* For backwards compatibility */
#define GOSTHASH94_DATA_SIZE GOSTHASH94_BLOCK_SIZE
struct
gosthash94_ctx
{
uint32_t
hash
[
8
];
/* algorithm 256-bit state */
uint32_t
sum
[
8
];
/* sum of processed message blocks */
uint8_t
message
[
GOSTHASH94_
DATA
_SIZE
];
/* 256-bit buffer for leftovers */
uint8_t
message
[
GOSTHASH94_
BLOCK
_SIZE
];
/* 256-bit buffer for leftovers */
uint64_t
length
;
/* number of processed bytes */
};
...
...
md2.c
View file @
d22bac82
...
...
@@ -87,21 +87,21 @@ md2_transform(struct md2_ctx *ctx, const uint8_t *data)
unsigned
i
;
uint8_t
t
;
memcpy
(
ctx
->
X
+
16
,
data
,
MD2_
DATA
_SIZE
);
memcpy
(
ctx
->
X
+
16
,
data
,
MD2_
BLOCK
_SIZE
);
for
(
i
=
0
,
t
=
ctx
->
C
[
15
];
i
<
MD2_
DATA
_SIZE
;
i
++
)
i
<
MD2_
BLOCK
_SIZE
;
i
++
)
{
ctx
->
X
[
2
*
MD2_
DATA
_SIZE
+
i
]
=
ctx
->
X
[
i
]
^
ctx
->
X
[
MD2_
DATA
_SIZE
+
i
];
ctx
->
X
[
2
*
MD2_
BLOCK
_SIZE
+
i
]
=
ctx
->
X
[
i
]
^
ctx
->
X
[
MD2_
BLOCK
_SIZE
+
i
];
t
=
(
ctx
->
C
[
i
]
^=
S
[
data
[
i
]
^
t
]);
}
for
(
i
=
t
=
0
;
i
<
MD2_
DATA
_SIZE
+
2
;
i
<
MD2_
BLOCK
_SIZE
+
2
;
t
=
(
t
+
i
)
&
0xff
,
i
++
)
{
unsigned
j
;
for
(
j
=
0
;
j
<
3
*
MD2_
DATA
_SIZE
;
j
++
)
for
(
j
=
0
;
j
<
3
*
MD2_
BLOCK
_SIZE
;
j
++
)
t
=
(
ctx
->
X
[
j
]
^=
S
[
t
]);
}
}
...
...
@@ -129,7 +129,7 @@ md2_digest(struct md2_ctx *ctx,
assert
(
length
<=
MD2_DIGEST_SIZE
);
left
=
MD2_
DATA
_SIZE
-
ctx
->
index
;
left
=
MD2_
BLOCK
_SIZE
-
ctx
->
index
;
memset
(
ctx
->
block
+
ctx
->
index
,
left
,
left
);
md2_transform
(
ctx
,
ctx
->
block
);
...
...
md2.h
View file @
d22bac82
...
...
@@ -46,13 +46,15 @@ extern "C" {
#define md2_digest nettle_md2_digest
#define MD2_DIGEST_SIZE 16
#define MD2_DATA_SIZE 16
#define MD2_BLOCK_SIZE 16
/* For backwards compatibility */
#define MD2_DATA_SIZE MD2_BLOCK_SIZE
struct
md2_ctx
{
uint8_t
C
[
MD2_
DATA
_SIZE
];
uint8_t
X
[
3
*
MD2_
DATA
_SIZE
];
uint8_t
block
[
MD2_
DATA
_SIZE
];
/* Block buffer */
uint8_t
C
[
MD2_
BLOCK
_SIZE
];
uint8_t
X
[
3
*
MD2_
BLOCK
_SIZE
];
uint8_t
block
[
MD2_
BLOCK
_SIZE
];
/* Block buffer */
unsigned
index
;
/* Into buffer */
};
...
...
md4.h
View file @
d22bac82
...
...
@@ -46,7 +46,9 @@ extern "C" {
#define md4_digest nettle_md4_digest
#define MD4_DIGEST_SIZE 16
#define MD4_DATA_SIZE 64
#define MD4_BLOCK_SIZE 64
/* For backwards compatibility */
#define MD4_DATA_SIZE MD4_BLOCK_SIZE
/* Digest is kept internally as 4 32-bit words. */
#define _MD4_DIGEST_LENGTH 4
...
...
@@ -56,7 +58,7 @@ struct md4_ctx
{
uint32_t
state
[
_MD4_DIGEST_LENGTH
];
uint64_t
count
;
/* Block count */
uint8_t
block
[
MD4_
DATA_SIZE
];
/* Block buffer */
uint8_t
block
[
MD4_
BLOCK_SIZE
];
/* Block buffer */
unsigned
index
;
/* Into buffer */
};
...
...
md5.c
View file @
d22bac82
...
...
@@ -85,7 +85,7 @@ md5_digest(struct md5_ctx *ctx,
/* There are 512 = 2^9 bits in one block */
bit_count
=
(
ctx
->
count
<<
9
)
|
(
ctx
->
index
<<
3
);
LE_WRITE_UINT64
(
ctx
->
block
+
(
MD5_
DATA
_SIZE
-
8
),
bit_count
);
LE_WRITE_UINT64
(
ctx
->
block
+
(
MD5_
BLOCK
_SIZE
-
8
),
bit_count
);
_nettle_md5_compress
(
ctx
->
state
,
ctx
->
block
);
_nettle_write_le32
(
length
,
digest
,
ctx
->
state
);
...
...
md5.h
View file @
d22bac82
...
...
@@ -46,7 +46,9 @@ extern "C" {
#define md5_digest nettle_md5_digest
#define MD5_DIGEST_SIZE 16
#define MD5_DATA_SIZE 64
#define MD5_BLOCK_SIZE 64
/* For backwards compatibility */
#define MD5_DATA_SIZE MD5_BLOCK_SIZE
/* Digest is kept internally as 4 32-bit words. */
#define _MD5_DIGEST_LENGTH 4
...
...
@@ -55,7 +57,7 @@ struct md5_ctx
{
uint32_t
state
[
_MD5_DIGEST_LENGTH
];
uint64_t
count
;
/* Block count */
uint8_t
block
[
MD5_
DATA
_SIZE
];
/* Block buffer */
uint8_t
block
[
MD5_
BLOCK
_SIZE
];
/* Block buffer */
unsigned
index
;
/* Into buffer */
};
...
...
nettle-meta.h
View file @
d22bac82
...
...
@@ -108,7 +108,7 @@ struct nettle_hash
#name, \
sizeof(struct name##_ctx), \
NAME##_DIGEST_SIZE, \
NAME##_
DATA
_SIZE, \
NAME##_
BLOCK
_SIZE, \
(nettle_hash_init_func *) name##_init, \
(nettle_hash_update_func *) name##_update, \
(nettle_hash_digest_func *) name##_digest \
...
...
nettle.texinfo
View file @
d22bac82
...
...
@@ -428,7 +428,7 @@ bits, or 32 octets. Nettle defines SHA256 in @file{<nettle/sha2.h>}.
The size of a SHA256 digest, i.e. 32.
@end defvr
@defvr Constant SHA256
_
DATA
_
SIZE
@defvr Constant SHA256
_
BLOCK
_
SIZE
The internal block size of SHA256. Useful for some special constructions,
in particular HMAC-SHA256.
@end defvr
...
...
@@ -469,7 +469,7 @@ compatibility).
The size of a SHA224 digest, i.e. 28.
@end defvr
@defvr Constant SHA224
_
DATA
_
SIZE
@defvr Constant SHA224
_
BLOCK
_
SIZE
The internal block size of SHA224. Useful for some special constructions,
in particular HMAC-SHA224.
@end defvr
...
...
@@ -508,7 +508,7 @@ octets. Nettle defines SHA512 in @file{<nettle/sha2.h>} (and in
The size of a SHA512 digest, i.e. 64.
@end defvr
@defvr Constant SHA512
_
DATA
_
SIZE
@defvr Constant SHA512
_
BLOCK
_
SIZE
The internal block size of SHA512, 128. Useful for some special
constructions, in particular HMAC-SHA512.
@end defvr
...
...
@@ -554,10 +554,10 @@ identifiers for other purposes. So avoid doing that.
The digest size for each variant, i.e., 28, 32, and 48, respectively.
@end defvr
@defvr Constant SHA512
_
224
_
DATA
_
SIZE
@defvrx Constant SHA512
_
256
_
DATA
_
SIZE
@defvrx Constant SHA384
_
DATA
_
SIZE
The internal block size, same as SHA512
_
DATA
_
SIZE, i.e., 128. Useful for
@defvr Constant SHA512
_
224
_
BLOCK
_
SIZE
@defvrx Constant SHA512
_
256
_
BLOCK
_
SIZE
@defvrx Constant SHA384
_
BLOCK
_
SIZE
The internal block size, same as SHA512
_
BLOCK
_
SIZE, i.e., 128. Useful for
some special constructions, in particular HMAC-SHA384.
@end defvr
...
...
@@ -606,7 +606,7 @@ Nettle defines SHA3-224 in @file{<nettle/sha3.h>}.
The size of a SHA3
_
224 digest, i.e., 28.
@end defvr
@defvr Constant SHA3
_
224
_
DATA
_
SIZE
@defvr Constant SHA3
_
224
_
BLOCK
_
SIZE
The internal block size of SHA3
_
224.
@end defvr
...
...
@@ -641,7 +641,7 @@ Nettle defines SHA3-256 in @file{<nettle/sha3.h>}.
The size of a SHA3
_
256 digest, i.e., 32.
@end defvr
@defvr Constant SHA3
_
256
_
DATA
_
SIZE
@defvr Constant SHA3
_
256
_
BLOCK
_
SIZE
The internal block size of SHA3
_
256.
@end defvr
...
...
@@ -675,7 +675,7 @@ Nettle defines SHA3-384 in @file{<nettle/sha3.h>}.
The size of a SHA3
_
384 digest, i.e., 48.
@end defvr
@defvr Constant SHA3
_
384
_
DATA
_
SIZE
@defvr Constant SHA3
_
384
_
BLOCK
_
SIZE
The internal block size of SHA3
_
384.
@end defvr
...
...
@@ -709,7 +709,7 @@ Nettle defines SHA3-512 in @file{<nettle/sha3.h>}.
The size of a SHA3
_
512 digest, i.e. 64.
@end defvr
@defvr Constant SHA3
_
512
_
DATA
_
SIZE
@defvr Constant SHA3
_
512
_
BLOCK
_
SIZE
The internal block size of SHA3
_
512.
@end defvr
...
...
@@ -757,7 +757,7 @@ described in @cite{RFC 1321}. It outputs message digests of 128 bits, or
The size of an MD5 digest, i.e. 16.
@end defvr
@defvr Constant MD5
_
DATA
_
SIZE
@defvr Constant MD5
_
BLOCK
_
SIZE
The internal block size of MD5. Useful for some special constructions,
in particular HMAC-MD5.
@end defvr
...
...
@@ -801,7 +801,7 @@ Nettle defines MD2 in @file{<nettle/md2.h>}.
The size of an MD2 digest, i.e. 16.
@end defvr
@defvr Constant MD2
_
DATA
_
SIZE
@defvr Constant MD2
_
BLOCK
_
SIZE
The internal block size of MD2.
@end defvr
...
...
@@ -838,7 +838,7 @@ existing applications and protocols.
The size of an MD4 digest, i.e. 16.
@end defvr
@defvr Constant MD4
_
DATA
_
SIZE
@defvr Constant MD4
_
BLOCK
_
SIZE
The internal block size of MD4.
@end defvr
...
...
@@ -875,7 +875,7 @@ RIPEMD160 in @file{nettle/ripemd160.h}.
The size of a RIPEMD160 digest, i.e. 20.
@end defvr
@defvr Constant RIPEMD160
_
DATA
_
SIZE
@defvr Constant RIPEMD160
_
BLOCK
_
SIZE
The internal block size of RIPEMD160.
@end defvr
...
...
@@ -911,7 +911,7 @@ in @file{<nettle/sha.h>}, for backwards compatibility).
The size of a SHA1 digest, i.e. 20.
@end defvr
@defvr Constant SHA1
_
DATA
_
SIZE
@defvr Constant SHA1
_
BLOCK
_
SIZE
The internal block size of SHA1. Useful for some special constructions,
in particular HMAC-SHA1.
@end defvr
...
...
@@ -949,7 +949,7 @@ Nettle defines GOSTHASH94 in @file{<nettle/gosthash94.h>}.
The size of a GOSTHASH94 digest, i.e. 32.
@end defvr
@defvr Constant GOSTHASH94
_
DATA
_
SIZE
@defvr Constant GOSTHASH94
_
BLOCK
_
SIZE
The internal block size of GOSTHASH94, i.e., 32.
@end defvr
...
...
@@ -2743,7 +2743,7 @@ The size of an UMAC96 digest, 12.
@defvr Constant UMAC128
_
DIGEST
_
SIZE
The size of an UMAC128 digest, 16.
@end defvr
@defvr Constant UMAC
_
DATA
_
SIZE
@defvr Constant UMAC
_
BLOCK
_
SIZE
The internal block size of UMAC.
@end defvr
...
...
ripemd160.h
View file @
d22bac82
...
...
@@ -48,7 +48,9 @@ extern "C" {
/* RIPEMD160 */
#define RIPEMD160_DIGEST_SIZE 20
#define RIPEMD160_DATA_SIZE 64
#define RIPEMD160_BLOCK_SIZE 64
/* For backwards compatibility */
#define RIPEMD160_DATA_SIZE RIPEMD160_BLOCK_SIZE
/* Digest is kept internally as 5 32-bit words. */
#define _RIPEMD160_DIGEST_LENGTH 5
...
...
@@ -57,7 +59,7 @@ struct ripemd160_ctx
{
uint32_t
state
[
_RIPEMD160_DIGEST_LENGTH
];
uint64_t
count
;
/* 64-bit block count */
uint8_t
block
[
RIPEMD160_
DATA
_SIZE
];
uint8_t
block
[
RIPEMD160_
BLOCK
_SIZE
];
unsigned
int
index
;
};
...
...
sha1.c
View file @
d22bac82
...
...
@@ -92,7 +92,7 @@ sha1_digest(struct sha1_ctx *ctx,
bit_count
=
(
ctx
->
count
<<
9
)
|
(
ctx
->
index
<<
3
);
/* append the 64 bit count */
WRITE_UINT64
(
ctx
->
block
+
(
SHA1_
DATA
_SIZE
-
8
),
bit_count
);
WRITE_UINT64
(
ctx
->
block
+
(
SHA1_
BLOCK
_SIZE
-
8
),
bit_count
);
_nettle_sha1_compress
(
ctx
->
state
,
ctx
->
block
);
_nettle_write_be32
(
length
,
digest
,
ctx
->
state
);
...
...
sha1.h
View file @
d22bac82
...
...
@@ -48,7 +48,9 @@ extern "C" {
/* SHA1 */
#define SHA1_DIGEST_SIZE 20
#define SHA1_DATA_SIZE 64
#define SHA1_BLOCK_SIZE 64
/* For backwards compatibility */
#define SHA1_DATA_SIZE SHA1_BLOCK_SIZE
/* Digest is kept internally as 5 32-bit words. */
#define _SHA1_DIGEST_LENGTH 5
...
...
@@ -57,7 +59,7 @@ struct sha1_ctx
{
uint32_t
state
[
_SHA1_DIGEST_LENGTH
];
/* State variables */
uint64_t
count
;
/* 64-bit block count */
uint8_t
block
[
SHA1_
DATA_SIZE
];
/* SHA1 data buffer */
uint8_t
block
[
SHA1_
BLOCK_SIZE
];
/* SHA1 data buffer */
unsigned
int
index
;
/* index into buffer */
};
...
...
sha2.h
View file @
d22bac82
...
...
@@ -56,10 +56,16 @@ extern "C" {
#define sha512_256_init nettle_sha512_256_init
#define sha512_256_digest nettle_sha512_256_digest
/* For backwards compatibility */
#define SHA224_DATA_SIZE SHA256_BLOCK_SIZE
#define SHA256_DATA_SIZE SHA256_BLOCK_SIZE
#define SHA512_DATA_SIZE SHA512_BLOCK_SIZE
#define SHA384_DATA_SIZE SHA512_BLOCK_SIZE
/* SHA256 */
#define SHA256_DIGEST_SIZE 32
#define SHA256_
DATA
_SIZE 64
#define SHA256_
BLOCK
_SIZE 64
/* Digest is kept internally as 8 32-bit words. */
#define _SHA256_DIGEST_LENGTH 8
...
...
@@ -68,7 +74,7 @@ struct sha256_ctx
{
uint32_t
state
[
_SHA256_DIGEST_LENGTH
];
/* State variables */
uint64_t
count
;
/* 64-bit block count */
uint8_t
block
[
SHA256_
DATA
_SIZE
];
/* SHA256 data buffer */
uint8_t
block
[
SHA256_
BLOCK
_SIZE
];
/* SHA256 data buffer */
unsigned
int
index
;
/* index into buffer */
};
...
...
@@ -95,7 +101,7 @@ _nettle_sha256_compress(uint32_t *state, const uint8_t *data, const uint32_t *k)
/* SHA224, a truncated SHA256 with different initial state. */
#define SHA224_DIGEST_SIZE 28
#define SHA224_
DATA_SIZE SHA256_DATA
_SIZE
#define SHA224_
BLOCK_SIZE SHA256_BLOCK
_SIZE
#define sha224_ctx sha256_ctx
void
...
...
@@ -112,7 +118,7 @@ sha224_digest(struct sha256_ctx *ctx,
/* SHA512 */
#define SHA512_DIGEST_SIZE 64
#define SHA512_
DATA
_SIZE 128
#define SHA512_
BLOCK
_SIZE 128
/* Digest is kept internally as 8 64-bit words. */
#define _SHA512_DIGEST_LENGTH 8
...
...
@@ -121,7 +127,7 @@ struct sha512_ctx
{
uint64_t
state
[
_SHA512_DIGEST_LENGTH
];
/* State variables */
uint64_t
count_low
,
count_high
;
/* 128-bit block count */
uint8_t
block
[
SHA512_
DATA
_SIZE
];
/* SHA512 data buffer */
uint8_t
block
[
SHA512_
BLOCK
_SIZE
];
/* SHA512 data buffer */
unsigned
int
index
;
/* index into buffer */
};
...
...
@@ -148,7 +154,7 @@ _nettle_sha512_compress(uint64_t *state, const uint8_t *data, const uint64_t *k)
/* SHA384, a truncated SHA512 with different initial state. */
#define SHA384_DIGEST_SIZE 48
#define SHA384_
DATA_SIZE SHA512_DATA
_SIZE
#define SHA384_
BLOCK_SIZE SHA512_BLOCK
_SIZE
#define sha384_ctx sha512_ctx
void
...
...
@@ -166,7 +172,7 @@ sha384_digest(struct sha512_ctx *ctx,
with different initial states. */
#define SHA512_224_DIGEST_SIZE 28
#define SHA512_224_
DATA_SIZE SHA512_DATA
_SIZE
#define SHA512_224_
BLOCK_SIZE SHA512_BLOCK
_SIZE
#define sha512_224_ctx sha512_ctx
void
...
...
@@ -180,7 +186,7 @@ sha512_224_digest(struct sha512_224_ctx *ctx,
uint8_t
*
digest
);
#define SHA512_256_DIGEST_SIZE 32
#define SHA512_256_
DATA_SIZE SHA512_DATA
_SIZE
#define SHA512_256_
BLOCK_SIZE SHA512_BLOCK
_SIZE
#define sha512_256_ctx sha512_ctx
void
...
...
sha256.c
View file @
d22bac82
...
...
@@ -116,7 +116,7 @@ sha256_write_digest(struct sha256_ctx *ctx,
/* This is slightly inefficient, as the numbers are converted to
big-endian format, and will be converted back by the compression
function. It's probably not worth the effort to fix this. */
WRITE_UINT64
(
ctx
->
block
+
(
SHA256_
DATA
_SIZE
-
8
),
bit_count
);
WRITE_UINT64
(
ctx
->
block
+
(
SHA256_
BLOCK
_SIZE
-
8
),
bit_count
);
COMPRESS
(
ctx
,
ctx
->
block
);
_nettle_write_be32
(
length
,
digest
,
ctx
->
state
);
...
...
sha3-224.c
View file @
d22bac82
...
...
@@ -53,7 +53,7 @@ sha3_224_update (struct sha3_224_ctx *ctx,
size_t
length
,
const
uint8_t
*
data
)
{
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_224_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_224_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
,
length
,
data
);
}
...
...
@@ -62,7 +62,7 @@ sha3_224_digest(struct sha3_224_ctx *ctx,
size_t
length
,
uint8_t
*
digest
)
{
_sha3_pad
(
&
ctx
->
state
,
SHA3_224_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_sha3_pad
(
&
ctx
->
state
,
SHA3_224_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_nettle_write_le64
(
length
,
digest
,
ctx
->
state
.
a
);
sha3_224_init
(
ctx
);
}
sha3-256.c
View file @
d22bac82
...
...
@@ -53,7 +53,7 @@ sha3_256_update (struct sha3_256_ctx *ctx,
size_t
length
,
const
uint8_t
*
data
)
{
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_256_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_256_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
,
length
,
data
);
}
...
...
@@ -62,7 +62,7 @@ sha3_256_digest(struct sha3_256_ctx *ctx,
size_t
length
,
uint8_t
*
digest
)
{
_sha3_pad
(
&
ctx
->
state
,
SHA3_256_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_sha3_pad
(
&
ctx
->
state
,
SHA3_256_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_nettle_write_le64
(
length
,
digest
,
ctx
->
state
.
a
);
sha3_256_init
(
ctx
);
}
sha3-384.c
View file @
d22bac82
...
...
@@ -53,7 +53,7 @@ sha3_384_update (struct sha3_384_ctx *ctx,
size_t
length
,
const
uint8_t
*
data
)
{
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_384_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_384_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
,
length
,
data
);
}
...
...
@@ -62,7 +62,7 @@ sha3_384_digest(struct sha3_384_ctx *ctx,
size_t
length
,
uint8_t
*
digest
)
{
_sha3_pad
(
&
ctx
->
state
,
SHA3_384_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_sha3_pad
(
&
ctx
->
state
,
SHA3_384_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_nettle_write_le64
(
length
,
digest
,
ctx
->
state
.
a
);
sha3_384_init
(
ctx
);
}
sha3-512.c
View file @
d22bac82
...
...
@@ -53,7 +53,7 @@ sha3_512_update (struct sha3_512_ctx *ctx,
size_t
length
,
const
uint8_t
*
data
)
{
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_512_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
=
_sha3_update
(
&
ctx
->
state
,
SHA3_512_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
,
length
,
data
);
}
...
...
@@ -62,7 +62,7 @@ sha3_512_digest(struct sha3_512_ctx *ctx,
size_t
length
,
uint8_t
*
digest
)
{
_sha3_pad
(
&
ctx
->
state
,
SHA3_512_
DATA
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_sha3_pad
(
&
ctx
->
state
,
SHA3_512_
BLOCK
_SIZE
,
ctx
->
block
,
ctx
->
index
);
_nettle_write_le64
(
length
,
digest
,
ctx
->
state
.
a
);
sha3_512_init
(
ctx
);
}
sha3.h
View file @
d22bac82
...
...
@@ -85,23 +85,28 @@ _sha3_pad (struct sha3_state *state,
size). */
#define SHA3_224_DIGEST_SIZE 28
#define SHA3_224_
DATA
_SIZE 144
#define SHA3_224_
BLOCK
_SIZE 144
#define SHA3_256_DIGEST_SIZE 32
#define SHA3_256_
DATA
_SIZE 136
#define SHA3_256_
BLOCK
_SIZE 136
#define SHA3_384_DIGEST_SIZE 48
#define SHA3_384_
DATA
_SIZE 104
#define SHA3_384_
BLOCK
_SIZE 104
#define SHA3_512_DIGEST_SIZE 64
#define SHA3_512_
DATA
_SIZE 72
#define SHA3_512_
BLOCK
_SIZE 72
/* For backwards compatibility */
#define SHA3_224_DATA_SIZE SHA3_224_BLOCK_SIZE
#define SHA3_256_DATA_SIZE SHA3_256_BLOCK_SIZE
#define SHA3_384_DATA_SIZE SHA3_384_BLOCK_SIZE
#define SHA3_512_DATA_SIZE SHA3_512_BLOCK_SIZE
struct
sha3_224_ctx
{
struct
sha3_state
state
;
unsigned
index
;
uint8_t
block
[
SHA3_224_
DATA
_SIZE
];
uint8_t
block
[
SHA3_224_
BLOCK
_SIZE
];
};
void
...
...
@@ -121,7 +126,7 @@ struct sha3_256_ctx
{
struct
sha3_state
state
;
unsigned
index
;
uint8_t
block
[
SHA3_256_
DATA
_SIZE
];
uint8_t
block
[
SHA3_256_
BLOCK
_SIZE
];
};
void
...
...
@@ -141,7 +146,7 @@ struct sha3_384_ctx
{
struct
sha3_state
state
;
unsigned
index
;
uint8_t
block
[
SHA3_384_
DATA
_SIZE
];
uint8_t
block
[
SHA3_384_
BLOCK
_SIZE
];
};
void
...
...
@@ -161,7 +166,7 @@ struct sha3_512_ctx
{
struct
sha3_state
state
;
unsigned
index
;
uint8_t
block
[
SHA3_512_
DATA
_SIZE
];
uint8_t
block
[
SHA3_512_
BLOCK
_SIZE
];
};
void
...
...
sha512-224-meta.c
View file @
d22bac82
...
...
@@ -41,7 +41,7 @@ const struct nettle_hash nettle_sha512_224 =
{
"sha512-224"
,
sizeof
(
struct
sha512_ctx
),
SHA512_224_DIGEST_SIZE
,
SHA512_224_
DATA
_SIZE
,
SHA512_224_
BLOCK
_SIZE
,
(
nettle_hash_init_func
*
)
sha512_224_init
,
(
nettle_hash_update_func
*
)
sha512_224_update
,
(
nettle_hash_digest_func
*
)
sha512_224_digest
...
...
sha512-256-meta.c
View file @
d22bac82
...
...
@@ -41,7 +41,7 @@ const struct nettle_hash nettle_sha512_256 =
{
"sha512-256"
,
sizeof
(
struct
sha512_ctx
),
SHA512_256_DIGEST_SIZE
,
SHA512_256_
DATA
_SIZE
,
SHA512_256_
BLOCK
_SIZE
,
(
nettle_hash_init_func
*
)
sha512_256_init
,
(
nettle_hash_update_func
*
)
sha512_256_update
,
(
nettle_hash_digest_func
*
)
sha512_256_digest
...
...
sha512.c
View file @
d22bac82
...
...
@@ -172,8 +172,8 @@ sha512_write_digest(struct sha512_ctx *ctx,
/* This is slightly inefficient, as the numbers are converted to
big-endian format, and will be converted back by the compression
function. It's probably not worth the effort to fix this. */
WRITE_UINT64
(
ctx
->
block
+
(
SHA512_
DATA
_SIZE
-
16
),
high
);
WRITE_UINT64
(
ctx
->
block
+
(
SHA512_
DATA
_SIZE
-
8
),
low
);