Skip to content

Commit e8d960a

Browse files
authored
Merge pull request #1960 from evoskuil/master
Add sha3 and rfc base32, rename "bech" base32 to base32b.
2 parents ef9da82 + cab0a25 commit e8d960a

41 files changed

Lines changed: 2219 additions & 536 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

builds/gnu/Makefile.am

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ src_libbitcoin_system_la_SOURCES = \
116116
${srcdir}/../../src/config/base16.cpp \
117117
${srcdir}/../../src/config/base2.cpp \
118118
${srcdir}/../../src/config/base32.cpp \
119+
${srcdir}/../../src/config/base32b.cpp \
119120
${srcdir}/../../src/config/base58.cpp \
120121
${srcdir}/../../src/config/base64.cpp \
121122
${srcdir}/../../src/config/base85.cpp \
@@ -173,6 +174,7 @@ src_libbitcoin_system_la_SOURCES = \
173174
${srcdir}/../../src/radix/base_10.cpp \
174175
${srcdir}/../../src/radix/base_2048.cpp \
175176
${srcdir}/../../src/radix/base_32.cpp \
177+
${srcdir}/../../src/radix/base_32b.cpp \
176178
${srcdir}/../../src/radix/base_58.cpp \
177179
${srcdir}/../../src/radix/base_64.cpp \
178180
${srcdir}/../../src/radix/base_85.cpp \
@@ -357,6 +359,7 @@ include_bitcoin_system_config_HEADERS = \
357359
${srcdir}/../../include/bitcoin/system/config/base16.hpp \
358360
${srcdir}/../../include/bitcoin/system/config/base2.hpp \
359361
${srcdir}/../../include/bitcoin/system/config/base32.hpp \
362+
${srcdir}/../../include/bitcoin/system/config/base32b.hpp \
360363
${srcdir}/../../include/bitcoin/system/config/base58.hpp \
361364
${srcdir}/../../include/bitcoin/system/config/base64.hpp \
362365
${srcdir}/../../include/bitcoin/system/config/base85.hpp \
@@ -491,6 +494,13 @@ include_bitcoin_system_hash_sha_HEADERS = \
491494
${srcdir}/../../include/bitcoin/system/hash/sha/sha256.hpp \
492495
${srcdir}/../../include/bitcoin/system/hash/sha/sha512.hpp
493496

497+
include_bitcoin_system_hash_sha3dir = \
498+
${includedir}/bitcoin/system/hash/sha3
499+
500+
include_bitcoin_system_hash_sha3_HEADERS = \
501+
${srcdir}/../../include/bitcoin/system/hash/sha3/algorithm.hpp \
502+
${srcdir}/../../include/bitcoin/system/hash/sha3/sha3.hpp
503+
494504
include_bitcoin_system_impl_chaindir = \
495505
${includedir}/bitcoin/system/impl/chain
496506

@@ -575,6 +585,17 @@ include_bitcoin_system_impl_hash_sha_HEADERS = \
575585
${srcdir}/../../include/bitcoin/system/impl/hash/sha/algorithm_single.ipp \
576586
${srcdir}/../../include/bitcoin/system/impl/hash/sha/algorithm_stream.ipp
577587

588+
include_bitcoin_system_impl_hash_sha3dir = \
589+
${includedir}/bitcoin/system/impl/hash/sha3
590+
591+
include_bitcoin_system_impl_hash_sha3_HEADERS = \
592+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_functions.ipp \
593+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_iterate.ipp \
594+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_padding.ipp \
595+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_parsing.ipp \
596+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_single.ipp \
597+
${srcdir}/../../include/bitcoin/system/impl/hash/sha3/algorithm_stream.ipp
598+
578599
include_bitcoin_system_impl_machinedir = \
579600
${includedir}/bitcoin/system/impl/machine
580601

@@ -756,6 +777,7 @@ include_bitcoin_system_radix_HEADERS = \
756777
${srcdir}/../../include/bitcoin/system/radix/base_2048.hpp \
757778
${srcdir}/../../include/bitcoin/system/radix/base_2n.hpp \
758779
${srcdir}/../../include/bitcoin/system/radix/base_32.hpp \
780+
${srcdir}/../../include/bitcoin/system/radix/base_32b.hpp \
759781
${srcdir}/../../include/bitcoin/system/radix/base_58.hpp \
760782
${srcdir}/../../include/bitcoin/system/radix/base_64.hpp \
761783
${srcdir}/../../include/bitcoin/system/radix/base_85.hpp \
@@ -1015,6 +1037,7 @@ test_libbitcoin_system_test_SOURCES = \
10151037
${srcdir}/../../test/config/base16.cpp \
10161038
${srcdir}/../../test/config/base2.cpp \
10171039
${srcdir}/../../test/config/base32.cpp \
1040+
${srcdir}/../../test/config/base32b.cpp \
10181041
${srcdir}/../../test/config/base58.cpp \
10191042
${srcdir}/../../test/config/base64.cpp \
10201043
${srcdir}/../../test/config/base85.cpp \
@@ -1096,6 +1119,8 @@ test_libbitcoin_system_test_SOURCES = \
10961119
${srcdir}/../../test/hash/sha/sha256.cpp \
10971120
${srcdir}/../../test/hash/sha/sha512.cpp \
10981121
${srcdir}/../../test/hash/sha/vector.cpp \
1122+
${srcdir}/../../test/hash/sha3/algorithm.cpp \
1123+
${srcdir}/../../test/hash/sha3/sha3.cpp \
10991124
${srcdir}/../../test/intrinsics/byte_swap.cpp \
11001125
${srcdir}/../../test/intrinsics/cpuid.cpp \
11011126
${srcdir}/../../test/intrinsics/detection.cpp \
@@ -1132,6 +1157,7 @@ test_libbitcoin_system_test_SOURCES = \
11321157
${srcdir}/../../test/radix/base_2048.cpp \
11331158
${srcdir}/../../test/radix/base_2n.cpp \
11341159
${srcdir}/../../test/radix/base_32.cpp \
1160+
${srcdir}/../../test/radix/base_32b.cpp \
11351161
${srcdir}/../../test/radix/base_58.cpp \
11361162
${srcdir}/../../test/radix/base_64.cpp \
11371163
${srcdir}/../../test/radix/base_85.cpp \

builds/msvc/vs2022/libbitcoin-system-test/libbitcoin-system-test.vcxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@
210210
<ClCompile Include="..\..\..\..\test\config\base16.cpp" />
211211
<ClCompile Include="..\..\..\..\test\config\base2.cpp" />
212212
<ClCompile Include="..\..\..\..\test\config\base32.cpp" />
213+
<ClCompile Include="..\..\..\..\test\config\base32b.cpp" />
213214
<ClCompile Include="..\..\..\..\test\config\base58.cpp" />
214215
<ClCompile Include="..\..\..\..\test\config\base64.cpp" />
215216
<ClCompile Include="..\..\..\..\test\config\base85.cpp" />
@@ -311,6 +312,10 @@
311312
<ClCompile Include="..\..\..\..\test\hash\sha\sha256.cpp" />
312313
<ClCompile Include="..\..\..\..\test\hash\sha\sha512.cpp" />
313314
<ClCompile Include="..\..\..\..\test\hash\sha\vector.cpp" />
315+
<ClCompile Include="..\..\..\..\test\hash\sha3\algorithm.cpp">
316+
<ObjectFileName>$(IntDir)test_hash_sha3_algorithm.obj</ObjectFileName>
317+
</ClCompile>
318+
<ClCompile Include="..\..\..\..\test\hash\sha3\sha3.cpp" />
314319
<ClCompile Include="..\..\..\..\test\hash\siphash.cpp" />
315320
<ClCompile Include="..\..\..\..\test\intrinsics\byte_swap.cpp" />
316321
<ClCompile Include="..\..\..\..\test\intrinsics\cpuid.cpp" />
@@ -356,6 +361,7 @@
356361
<ClCompile Include="..\..\..\..\test\radix\base_2048.cpp" />
357362
<ClCompile Include="..\..\..\..\test\radix\base_2n.cpp" />
358363
<ClCompile Include="..\..\..\..\test\radix\base_32.cpp" />
364+
<ClCompile Include="..\..\..\..\test\radix\base_32b.cpp" />
359365
<ClCompile Include="..\..\..\..\test\radix\base_58.cpp" />
360366
<ClCompile Include="..\..\..\..\test\radix\base_64.cpp" />
361367
<ClCompile Include="..\..\..\..\test\radix\base_85.cpp" />

builds/msvc/vs2022/libbitcoin-system-test/libbitcoin-system-test.vcxproj.filters

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -58,66 +58,69 @@
5858
<Filter Include="src\hash\sha">
5959
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000001}</UniqueIdentifier>
6060
</Filter>
61-
<Filter Include="src\intrinsics">
61+
<Filter Include="src\hash\sha3">
6262
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
6363
</Filter>
64-
<Filter Include="src\intrinsics\platforms">
64+
<Filter Include="src\intrinsics">
6565
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000003}</UniqueIdentifier>
6666
</Filter>
67-
<Filter Include="src\machine">
67+
<Filter Include="src\intrinsics\platforms">
6868
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000004}</UniqueIdentifier>
6969
</Filter>
70-
<Filter Include="src\math">
70+
<Filter Include="src\machine">
7171
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000005}</UniqueIdentifier>
7272
</Filter>
73-
<Filter Include="src\mocks">
73+
<Filter Include="src\math">
7474
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000006}</UniqueIdentifier>
7575
</Filter>
76-
<Filter Include="src\radix">
76+
<Filter Include="src\mocks">
7777
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000007}</UniqueIdentifier>
7878
</Filter>
79-
<Filter Include="src\serial">
79+
<Filter Include="src\radix">
8080
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000008}</UniqueIdentifier>
8181
</Filter>
82-
<Filter Include="src\stream">
82+
<Filter Include="src\serial">
8383
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000009}</UniqueIdentifier>
8484
</Filter>
85-
<Filter Include="src\stream\devices">
85+
<Filter Include="src\stream">
8686
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000010}</UniqueIdentifier>
8787
</Filter>
88-
<Filter Include="src\stream\iostream">
88+
<Filter Include="src\stream\devices">
8989
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000A1}</UniqueIdentifier>
9090
</Filter>
91-
<Filter Include="src\stream\streamers">
91+
<Filter Include="src\stream\iostream">
9292
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000B1}</UniqueIdentifier>
9393
</Filter>
94-
<Filter Include="src\unicode">
94+
<Filter Include="src\stream\streamers">
9595
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000C1}</UniqueIdentifier>
9696
</Filter>
97-
<Filter Include="src\unicode\utf8_everywhere">
97+
<Filter Include="src\unicode">
9898
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000D1}</UniqueIdentifier>
9999
</Filter>
100-
<Filter Include="src\wallet">
100+
<Filter Include="src\unicode\utf8_everywhere">
101101
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000E1}</UniqueIdentifier>
102102
</Filter>
103-
<Filter Include="src\wallet\addresses">
103+
<Filter Include="src\wallet">
104104
<UniqueIdentifier>{51A424A9-2C12-4211-0000-0000000000F1}</UniqueIdentifier>
105105
</Filter>
106-
<Filter Include="src\wallet\keys">
106+
<Filter Include="src\wallet\addresses">
107107
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000002}</UniqueIdentifier>
108108
</Filter>
109-
<Filter Include="src\wallet\mnemonics">
109+
<Filter Include="src\wallet\keys">
110110
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000003}</UniqueIdentifier>
111111
</Filter>
112-
<Filter Include="src\wallet\psbt">
112+
<Filter Include="src\wallet\mnemonics">
113113
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000004}</UniqueIdentifier>
114114
</Filter>
115-
<Filter Include="src\words">
115+
<Filter Include="src\wallet\psbt">
116116
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000005}</UniqueIdentifier>
117117
</Filter>
118-
<Filter Include="src\words\catalogs">
118+
<Filter Include="src\words">
119119
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000006}</UniqueIdentifier>
120120
</Filter>
121+
<Filter Include="src\words\catalogs">
122+
<UniqueIdentifier>{51A424A9-2C12-4211-0000-000000000007}</UniqueIdentifier>
123+
</Filter>
121124
</ItemGroup>
122125
<ItemGroup>
123126
<ClCompile Include="..\..\..\..\test\allocator.cpp">
@@ -258,6 +261,9 @@
258261
<ClCompile Include="..\..\..\..\test\config\base32.cpp">
259262
<Filter>src\config</Filter>
260263
</ClCompile>
264+
<ClCompile Include="..\..\..\..\test\config\base32b.cpp">
265+
<Filter>src\config</Filter>
266+
</ClCompile>
261267
<ClCompile Include="..\..\..\..\test\config\base58.cpp">
262268
<Filter>src\config</Filter>
263269
</ClCompile>
@@ -495,6 +501,12 @@
495501
<ClCompile Include="..\..\..\..\test\hash\scrypt.cpp">
496502
<Filter>src\hash</Filter>
497503
</ClCompile>
504+
<ClCompile Include="..\..\..\..\test\hash\sha3\algorithm.cpp">
505+
<Filter>src\hash\sha3</Filter>
506+
</ClCompile>
507+
<ClCompile Include="..\..\..\..\test\hash\sha3\sha3.cpp">
508+
<Filter>src\hash\sha3</Filter>
509+
</ClCompile>
498510
<ClCompile Include="..\..\..\..\test\hash\sha\algorithm.cpp">
499511
<Filter>src\hash\sha</Filter>
500512
</ClCompile>
@@ -630,6 +642,9 @@
630642
<ClCompile Include="..\..\..\..\test\radix\base_32.cpp">
631643
<Filter>src\radix</Filter>
632644
</ClCompile>
645+
<ClCompile Include="..\..\..\..\test\radix\base_32b.cpp">
646+
<Filter>src\radix</Filter>
647+
</ClCompile>
633648
<ClCompile Include="..\..\..\..\test\radix\base_58.cpp">
634649
<Filter>src\radix</Filter>
635650
</ClCompile>

builds/msvc/vs2022/libbitcoin-system/libbitcoin-system.vcxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@
207207
<ClCompile Include="..\..\..\..\src\config\base16.cpp" />
208208
<ClCompile Include="..\..\..\..\src\config\base2.cpp" />
209209
<ClCompile Include="..\..\..\..\src\config\base32.cpp" />
210+
<ClCompile Include="..\..\..\..\src\config\base32b.cpp" />
210211
<ClCompile Include="..\..\..\..\src\config\base58.cpp" />
211212
<ClCompile Include="..\..\..\..\src\config\base64.cpp" />
212213
<ClCompile Include="..\..\..\..\src\config\base85.cpp" />
@@ -283,6 +284,7 @@
283284
<ClCompile Include="..\..\..\..\src\radix\base_10.cpp" />
284285
<ClCompile Include="..\..\..\..\src\radix\base_2048.cpp" />
285286
<ClCompile Include="..\..\..\..\src\radix\base_32.cpp" />
287+
<ClCompile Include="..\..\..\..\src\radix\base_32b.cpp" />
286288
<ClCompile Include="..\..\..\..\src\radix\base_58.cpp" />
287289
<ClCompile Include="..\..\..\..\src\radix\base_64.cpp" />
288290
<ClCompile Include="..\..\..\..\src\radix\base_85.cpp" />
@@ -436,6 +438,7 @@
436438
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base16.hpp" />
437439
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base2.hpp" />
438440
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base32.hpp" />
441+
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base32b.hpp" />
439442
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base58.hpp" />
440443
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base64.hpp" />
441444
<ClInclude Include="..\..\..\..\include\bitcoin\system\config\base85.hpp" />
@@ -535,6 +538,8 @@
535538
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\sha\sha160.hpp" />
536539
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\sha\sha256.hpp" />
537540
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\sha\sha512.hpp" />
541+
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\sha3\algorithm.hpp" />
542+
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\sha3\sha3.hpp" />
538543
<ClInclude Include="..\..\..\..\include\bitcoin\system\hash\siphash.hpp" />
539544
<ClInclude Include="..\..\..\..\include\bitcoin\system\have.hpp" />
540545
<ClInclude Include="..\..\..\..\include\bitcoin\system\intrinsics\byte_swap.hpp" />
@@ -584,6 +589,7 @@
584589
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_2048.hpp" />
585590
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_2n.hpp" />
586591
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_32.hpp" />
592+
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_32b.hpp" />
587593
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_58.hpp" />
588594
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_64.hpp" />
589595
<ClInclude Include="..\..\..\..\include\bitcoin\system\radix\base_85.hpp" />
@@ -759,6 +765,12 @@
759765
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha\algorithm_sigma.ipp" />
760766
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha\algorithm_single.ipp" />
761767
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha\algorithm_stream.ipp" />
768+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_functions.ipp" />
769+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_iterate.ipp" />
770+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_padding.ipp" />
771+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_parsing.ipp" />
772+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_single.ipp" />
773+
<None Include="..\..\..\..\include\bitcoin\system\impl\hash\sha3\algorithm_stream.ipp" />
762774
<None Include="..\..\..\..\include\bitcoin\system\impl\machine\interpreter.ipp" />
763775
<None Include="..\..\..\..\include\bitcoin\system\impl\machine\interpreter_connect.ipp" />
764776
<None Include="..\..\..\..\include\bitcoin\system\impl\machine\interpreter_run.ipp" />

0 commit comments

Comments
 (0)