Skip to content

Commit 17ac08b

Browse files
authored
Merge pull request #89 from hackmod/smaller-size
reduce sph_*.* size
2 parents e9b2742 + a4d56e7 commit 17ac08b

17 files changed

+155
-29
lines changed

src/sha3/hamsi.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,13 @@ extern "C"{
114114

115115
#include "hamsi_helper.c"
116116

117+
#ifdef USE_SPH_HAMSI224
117118
static const sph_u32 IV224[] = {
118119
SPH_C32(0xc3967a67), SPH_C32(0xc3bc6c20), SPH_C32(0x4bc3bcc3),
119120
SPH_C32(0xa7c3bc6b), SPH_C32(0x2c204b61), SPH_C32(0x74686f6c),
120121
SPH_C32(0x69656b65), SPH_C32(0x20556e69)
121122
};
123+
#endif
122124

123125
/*
124126
* This version is the one used in the Hamsi submission package for
@@ -132,12 +134,15 @@ static const sph_u32 IV224[] = {
132134
};
133135
*/
134136

137+
#ifdef USE_SPH_HAMSI256
135138
static const sph_u32 IV256[] = {
136139
SPH_C32(0x76657273), SPH_C32(0x69746569), SPH_C32(0x74204c65),
137140
SPH_C32(0x7576656e), SPH_C32(0x2c204465), SPH_C32(0x70617274),
138141
SPH_C32(0x656d656e), SPH_C32(0x7420456c)
139142
};
143+
#endif
140144

145+
#ifdef USE_SPH_HAMSI384
141146
static const sph_u32 IV384[] = {
142147
SPH_C32(0x656b7472), SPH_C32(0x6f746563), SPH_C32(0x686e6965),
143148
SPH_C32(0x6b2c2043), SPH_C32(0x6f6d7075), SPH_C32(0x74657220),
@@ -146,6 +151,7 @@ static const sph_u32 IV384[] = {
146151
SPH_C32(0x43727970), SPH_C32(0x746f6772), SPH_C32(0x61706879),
147152
SPH_C32(0x2c204b61)
148153
};
154+
#endif
149155

150156
static const sph_u32 IV512[] = {
151157
SPH_C32(0x73746565), SPH_C32(0x6c706172), SPH_C32(0x6b204172),
@@ -316,6 +322,7 @@ static const sph_u32 alpha_f[] = {
316322
c0 = (sc->h[0] ^= s0); \
317323
} while (0)
318324

325+
#if defined(USE_SPH_HAMSI224) || defined(USE_SPH_HAMSI256) || defined(USE_SPH_HAMSI384)
319326
static void
320327
hamsi_small(sph_hamsi_small_context *sc, const unsigned char *buf, size_t num)
321328
{
@@ -424,6 +431,7 @@ hamsi_small_close(sph_hamsi_small_context *sc,
424431
for (u = 0; u < out_size_w32; u ++)
425432
sph_enc32be(out + (u << 2), sc->h[u]);
426433
}
434+
#endif
427435

428436
#define DECL_STATE_BIG \
429437
sph_u32 c0, c1, c2, c3, c4, c5, c6, c7; \
@@ -742,6 +750,7 @@ hamsi_big_close(sph_hamsi_big_context *sc,
742750
}
743751
}
744752

753+
#ifdef USE_SPH_HAMSI224
745754
/* see sph_hamsi.h */
746755
void
747756
sph_hamsi224_init(void *cc)
@@ -771,7 +780,9 @@ sph_hamsi224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
771780
hamsi_small_close(cc, ub, n, dst, 7);
772781
hamsi_small_init(cc, IV224);
773782
}
783+
#endif
774784

785+
#ifdef USE_SPH_HAMSI256
775786
/* see sph_hamsi.h */
776787
void
777788
sph_hamsi256_init(void *cc)
@@ -801,7 +812,9 @@ sph_hamsi256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
801812
hamsi_small_close(cc, ub, n, dst, 8);
802813
hamsi_small_init(cc, IV256);
803814
}
815+
#endif
804816

817+
#ifdef USE_SPH_HAMSI384
805818
/* see sph_hamsi.h */
806819
void
807820
sph_hamsi384_init(void *cc)
@@ -831,6 +844,7 @@ sph_hamsi384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
831844
hamsi_big_close(cc, ub, n, dst, 12);
832845
hamsi_big_init(cc, IV384);
833846
}
847+
#endif
834848

835849
/* see sph_hamsi.h */
836850
void

src/sha3/sph_blake.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,7 @@ blake64_close(sph_blake_big_context *sc,
999999

10001000
#endif
10011001

1002+
#ifdef USE_SPH_BLAKE224
10021003
/* see sph_blake.h */
10031004
void
10041005
sph_blake224_init(void *cc)
@@ -1027,6 +1028,7 @@ sph_blake224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
10271028
blake32_close(cc, ub, n, dst, 7);
10281029
sph_blake224_init(cc);
10291030
}
1031+
#endif
10301032

10311033
/* see sph_blake.h */
10321034
void

src/sha3/sph_bmw.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,7 @@ bmw64_close(sph_bmw_big_context *sc, unsigned ub, unsigned n,
840840

841841
#endif
842842

843+
#ifdef USE_SPH_BMW224
843844
/* see sph_bmw.h */
844845
void
845846
sph_bmw224_init(void *cc)
@@ -868,6 +869,7 @@ sph_bmw224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
868869
bmw32_close(cc, ub, n, dst, 7);
869870
sph_bmw224_init(cc);
870871
}
872+
#endif
871873

872874
/* see sph_bmw.h */
873875
void
@@ -900,6 +902,7 @@ sph_bmw256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
900902

901903
#if SPH_64
902904

905+
#ifdef USE_SPH_BMW384
903906
/* see sph_bmw.h */
904907
void
905908
sph_bmw384_init(void *cc)
@@ -928,6 +931,7 @@ sph_bmw384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
928931
bmw64_close(cc, ub, n, dst, 6);
929932
sph_bmw384_init(cc);
930933
}
934+
#endif
931935

932936
/* see sph_bmw.h */
933937
void

src/sha3/sph_cubehash.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,7 @@ cubehash_close(sph_cubehash_context *sc, unsigned ub, unsigned n,
603603
sph_enc32le(out + (z << 2), sc->state[z]);
604604
}
605605

606+
#ifdef USE_SPH_CUBEHASH224
606607
/* see sph_cubehash.h */
607608
void
608609
sph_cubehash224_init(void *cc)
@@ -631,6 +632,7 @@ sph_cubehash224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
631632
cubehash_close(cc, ub, n, dst, 7);
632633
sph_cubehash224_init(cc);
633634
}
635+
#endif
634636

635637
/* see sph_cubehash.h */
636638
void
@@ -661,6 +663,7 @@ sph_cubehash256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
661663
sph_cubehash256_init(cc);
662664
}
663665

666+
#ifdef USE_SPH_CUBEHASH384
664667
/* see sph_cubehash.h */
665668
void
666669
sph_cubehash384_init(void *cc)
@@ -689,6 +692,7 @@ sph_cubehash384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
689692
cubehash_close(cc, ub, n, dst, 12);
690693
sph_cubehash384_init(cc);
691694
}
695+
#endif
692696

693697
/* see sph_cubehash.h */
694698
void

src/sha3/sph_echo.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,7 @@ mix_column(sph_u32 W[16][4], int ia, int ib, int ic, int id)
643643
} \
644644
} while (0)
645645

646+
#if defined(USE_SPH_ECHO224) || defined(USE_SPH_ECHO256)
646647
static void
647648
echo_small_init(sph_echo_small_context *sc, unsigned out_len)
648649
{
@@ -668,6 +669,7 @@ echo_small_init(sph_echo_small_context *sc, unsigned out_len)
668669
sc->ptr = 0;
669670
sc->C0 = sc->C1 = sc->C2 = sc->C3 = 0;
670671
}
672+
#endif
671673

672674
static void
673675
echo_big_init(sph_echo_big_context *sc, unsigned out_len)
@@ -711,13 +713,15 @@ echo_big_init(sph_echo_big_context *sc, unsigned out_len)
711713
sc->C0 = sc->C1 = sc->C2 = sc->C3 = 0;
712714
}
713715

716+
#if defined(USE_SPH_ECHO224) || defined(USE_SPH_ECHO256)
714717
static void
715718
echo_small_compress(sph_echo_small_context *sc)
716719
{
717720
DECL_STATE_SMALL
718721

719722
COMPRESS_SMALL(sc);
720723
}
724+
#endif
721725

722726
static void
723727
echo_big_compress(sph_echo_big_context *sc)
@@ -727,6 +731,7 @@ echo_big_compress(sph_echo_big_context *sc)
727731
COMPRESS_BIG(sc);
728732
}
729733

734+
#if defined(USE_SPH_ECHO224) || defined(USE_SPH_ECHO256)
730735
static void
731736
echo_small_core(sph_echo_small_context *sc,
732737
const unsigned char *data, size_t len)
@@ -761,6 +766,7 @@ echo_small_core(sph_echo_small_context *sc,
761766
}
762767
sc->ptr = ptr;
763768
}
769+
#endif
764770

765771
static void
766772
echo_big_core(sph_echo_big_context *sc,
@@ -797,6 +803,7 @@ echo_big_core(sph_echo_big_context *sc,
797803
sc->ptr = ptr;
798804
}
799805

806+
#if defined(USE_SPH_ECHO224) || defined(USE_SPH_ECHO256)
800807
static void
801808
echo_small_close(sph_echo_small_context *sc, unsigned ub, unsigned n,
802809
void *dst, unsigned out_size_w32)
@@ -855,6 +862,7 @@ echo_small_close(sph_echo_small_context *sc, unsigned ub, unsigned n,
855862
memcpy(dst, u.tmp, out_size_w32 << 2);
856863
echo_small_init(sc, out_size_w32 << 5);
857864
}
865+
#endif
858866

859867
static void
860868
echo_big_close(sph_echo_big_context *sc, unsigned ub, unsigned n,
@@ -915,6 +923,7 @@ echo_big_close(sph_echo_big_context *sc, unsigned ub, unsigned n,
915923
echo_big_init(sc, out_size_w32 << 5);
916924
}
917925

926+
#ifdef USE_SPH_ECHO224
918927
/* see sph_echo.h */
919928
void
920929
sph_echo224_init(void *cc)
@@ -942,7 +951,9 @@ sph_echo224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
942951
{
943952
echo_small_close(cc, ub, n, dst, 7);
944953
}
954+
#endif
945955

956+
#ifdef USE_SPH_ECHO256
946957
/* see sph_echo.h */
947958
void
948959
sph_echo256_init(void *cc)
@@ -970,7 +981,9 @@ sph_echo256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
970981
{
971982
echo_small_close(cc, ub, n, dst, 8);
972983
}
984+
#endif
973985

986+
#ifdef USE_SPH_ECHO384
974987
/* see sph_echo.h */
975988
void
976989
sph_echo384_init(void *cc)
@@ -998,6 +1011,7 @@ sph_echo384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
9981011
{
9991012
echo_big_close(cc, ub, n, dst, 12);
10001013
}
1014+
#endif
10011015

10021016
/* see sph_echo.h */
10031017
void

src/sha3/sph_fugue.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,7 @@ fugue2_core(sph_fugue_context *sc, const void *data, size_t len)
800800
WRITE_STATE_SMALL(sc);
801801
}
802802

803+
#ifdef USE_SPH_FUGUE384
803804
static void
804805
fugue3_core(sph_fugue_context *sc, const void *data, size_t len)
805806
{
@@ -859,6 +860,7 @@ fugue3_core(sph_fugue_context *sc, const void *data, size_t len)
859860
CORE_EXIT
860861
WRITE_STATE_BIG(sc);
861862
}
863+
#endif
862864

863865
static void
864866
fugue4_core(sph_fugue_context *sc, const void *data, size_t len)
@@ -1000,6 +1002,7 @@ fugue2_close(sph_fugue_context *sc, unsigned ub, unsigned n,
10001002
}
10011003
}
10021004

1005+
#ifdef USE_SPH_FUGUE384
10031006
static void
10041007
fugue3_close(sph_fugue_context *sc, unsigned ub, unsigned n, void *dst)
10051008
{
@@ -1046,6 +1049,7 @@ fugue3_close(sph_fugue_context *sc, unsigned ub, unsigned n, void *dst)
10461049
sph_enc32be(out + 44, S[27]);
10471050
sph_fugue384_init(sc);
10481051
}
1052+
#endif
10491053

10501054
static void
10511055
fugue4_close(sph_fugue_context *sc, unsigned ub, unsigned n, void *dst)
@@ -1114,6 +1118,7 @@ sph_fugue224_init(void *cc)
11141118
fugue_init(cc, 23, IV224, 7);
11151119
}
11161120

1121+
#ifdef USE_SPH_FUGUE224
11171122
void
11181123
sph_fugue224(void *cc, const void *data, size_t len)
11191124
{
@@ -1131,6 +1136,7 @@ sph_fugue224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
11311136
{
11321137
fugue2_close(cc, ub, n, dst, 7);
11331138
}
1139+
#endif
11341140

11351141
void
11361142
sph_fugue256_init(void *cc)
@@ -1156,6 +1162,7 @@ sph_fugue256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
11561162
fugue2_close(cc, ub, n, dst, 8);
11571163
}
11581164

1165+
#ifdef USE_SPH_FUGUE384
11591166
void
11601167
sph_fugue384_init(void *cc)
11611168
{
@@ -1179,6 +1186,7 @@ sph_fugue384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
11791186
{
11801187
fugue3_close(cc, ub, n, dst);
11811188
}
1189+
#endif
11821190

11831191
void
11841192
sph_fugue512_init(void *cc)

src/sha3/sph_groestl.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3002,6 +3002,7 @@ groestl_big_close(sph_groestl_big_context *sc,
30023002
groestl_big_init(sc, (unsigned)out_len << 3);
30033003
}
30043004

3005+
#ifdef USE_SPH_GROESTL224
30053006
/* see sph_groestl.h */
30063007
void
30073008
sph_groestl224_init(void *cc)
@@ -3029,6 +3030,7 @@ sph_groestl224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
30293030
{
30303031
groestl_small_close(cc, ub, n, dst, 28);
30313032
}
3033+
#endif
30323034

30333035
/* see sph_groestl.h */
30343036
void
@@ -3058,6 +3060,7 @@ sph_groestl256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
30583060
groestl_small_close(cc, ub, n, dst, 32);
30593061
}
30603062

3063+
#ifdef USE_SPH_GROESTL384
30613064
/* see sph_groestl.h */
30623065
void
30633066
sph_groestl384_init(void *cc)
@@ -3085,6 +3088,7 @@ sph_groestl384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
30853088
{
30863089
groestl_big_close(cc, ub, n, dst, 48);
30873090
}
3091+
#endif
30883092

30893093
/* see sph_groestl.h */
30903094
void

src/sha3/sph_jh.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,7 @@ jh_close(sph_jh_context *sc, unsigned ub, unsigned n,
999999
jh_init(sc, iv);
10001000
}
10011001

1002+
#ifdef USE_SPH_JH224
10021003
/* see sph_jh.h */
10031004
void
10041005
sph_jh224_init(void *cc)
@@ -1026,6 +1027,7 @@ sph_jh224_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
10261027
{
10271028
jh_close(cc, ub, n, dst, 7, IV224);
10281029
}
1030+
#endif
10291031

10301032
/* see sph_jh.h */
10311033
void
@@ -1055,6 +1057,7 @@ sph_jh256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
10551057
jh_close(cc, ub, n, dst, 8, IV256);
10561058
}
10571059

1060+
#ifdef USE_SPH_JH384
10581061
/* see sph_jh.h */
10591062
void
10601063
sph_jh384_init(void *cc)
@@ -1082,6 +1085,7 @@ sph_jh384_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst)
10821085
{
10831086
jh_close(cc, ub, n, dst, 12, IV384);
10841087
}
1088+
#endif
10851089

10861090
/* see sph_jh.h */
10871091
void

0 commit comments

Comments
 (0)