diff options
| author | jsing <> | 2024-03-28 08:30:25 +0000 |
|---|---|---|
| committer | jsing <> | 2024-03-28 08:30:25 +0000 |
| commit | 31ae96a10cb7b1ee9f71f19daa703af66ef260c3 (patch) | |
| tree | c780380f2cd4faa99b8579a36da08b64c4eab9ea /src | |
| parent | 628339ed2ed0d5336b64b6a7b9bbf82987992d03 (diff) | |
| download | openbsd-31ae96a10cb7b1ee9f71f19daa703af66ef260c3.tar.gz openbsd-31ae96a10cb7b1ee9f71f19daa703af66ef260c3.tar.bz2 openbsd-31ae96a10cb7b1ee9f71f19daa703af66ef260c3.zip | |
Inline HASH_MAKE_STRING.
No change to generated assembly.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/sm3/sm3.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/lib/libcrypto/sm3/sm3.c b/src/lib/libcrypto/sm3/sm3.c index 6406454568..d19156a6a1 100644 --- a/src/lib/libcrypto/sm3/sm3.c +++ b/src/lib/libcrypto/sm3/sm3.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: sm3.c,v 1.10 2024/03/28 08:26:42 jsing Exp $ */ | 1 | /* $OpenBSD: sm3.c,v 1.11 2024/03/28 08:30:25 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, Ribose Inc | 3 | * Copyright (c) 2018, Ribose Inc |
| 4 | * | 4 | * |
| @@ -31,17 +31,6 @@ | |||
| 31 | #define HASH_UPDATE SM3_Update | 31 | #define HASH_UPDATE SM3_Update |
| 32 | #define HASH_TRANSFORM SM3_Transform | 32 | #define HASH_TRANSFORM SM3_Transform |
| 33 | #define HASH_FINAL SM3_Final | 33 | #define HASH_FINAL SM3_Final |
| 34 | #define HASH_MAKE_STRING(c, s) do { \ | ||
| 35 | unsigned long ll; \ | ||
| 36 | ll = (c)->A; HOST_l2c(ll, (s)); \ | ||
| 37 | ll = (c)->B; HOST_l2c(ll, (s)); \ | ||
| 38 | ll = (c)->C; HOST_l2c(ll, (s)); \ | ||
| 39 | ll = (c)->D; HOST_l2c(ll, (s)); \ | ||
| 40 | ll = (c)->E; HOST_l2c(ll, (s)); \ | ||
| 41 | ll = (c)->F; HOST_l2c(ll, (s)); \ | ||
| 42 | ll = (c)->G; HOST_l2c(ll, (s)); \ | ||
| 43 | ll = (c)->H; HOST_l2c(ll, (s)); \ | ||
| 44 | } while (0) | ||
| 45 | #define HASH_BLOCK_DATA_ORDER SM3_block_data_order | 34 | #define HASH_BLOCK_DATA_ORDER SM3_block_data_order |
| 46 | 35 | ||
| 47 | void SM3_block_data_order(SM3_CTX *c, const void *p, size_t num); | 36 | void SM3_block_data_order(SM3_CTX *c, const void *p, size_t num); |
| @@ -341,6 +330,7 @@ SM3_Final(unsigned char *md, SM3_CTX *c) | |||
| 341 | { | 330 | { |
| 342 | unsigned char *p = (unsigned char *)c->data; | 331 | unsigned char *p = (unsigned char *)c->data; |
| 343 | size_t n = c->num; | 332 | size_t n = c->num; |
| 333 | unsigned long ll; | ||
| 344 | 334 | ||
| 345 | p[n] = 0x80; /* there is always room for one */ | 335 | p[n] = 0x80; /* there is always room for one */ |
| 346 | n++; | 336 | n++; |
| @@ -365,11 +355,24 @@ SM3_Final(unsigned char *md, SM3_CTX *c) | |||
| 365 | c->num = 0; | 355 | c->num = 0; |
| 366 | memset(p, 0, SM3_CBLOCK); | 356 | memset(p, 0, SM3_CBLOCK); |
| 367 | 357 | ||
| 368 | #ifndef HASH_MAKE_STRING | 358 | do { |
| 369 | #error "HASH_MAKE_STRING must be defined!" | 359 | ll = (c)->A; |
| 370 | #else | 360 | HOST_l2c(ll, md); |
| 371 | HASH_MAKE_STRING(c, md); | 361 | ll = (c)->B; |
| 372 | #endif | 362 | HOST_l2c(ll, md); |
| 363 | ll = (c)->C; | ||
| 364 | HOST_l2c(ll, md); | ||
| 365 | ll = (c)->D; | ||
| 366 | HOST_l2c(ll, md); | ||
| 367 | ll = (c)->E; | ||
| 368 | HOST_l2c(ll, md); | ||
| 369 | ll = (c)->F; | ||
| 370 | HOST_l2c(ll, md); | ||
| 371 | ll = (c)->G; | ||
| 372 | HOST_l2c(ll, md); | ||
| 373 | ll = (c)->H; | ||
| 374 | HOST_l2c(ll, md); | ||
| 375 | } while (0); | ||
| 373 | 376 | ||
| 374 | return 1; | 377 | return 1; |
| 375 | } | 378 | } |
