Skip to content

Commit 55c35b7

Browse files
authored
Merge pull request #102 from FirebirdSQL/work/core-4436-hash
Improvement CORE-4436 - Support for different hash algorithms in HASH system function.
2 parents ee9085a + 5ba4754 commit 55c35b7

Some content is hidden

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

43 files changed

+6090
-47
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@
6868
* [CORE-5064](http://tracker.firebirdsql.org/browse/CORE-5064): Add datatypes (VAR)BINARY(n) and BINARY VARYING(n) as aliases for (VAR)CHAR(n) CHARACTER SET OCTETS
6969
Contributor(s): Dimitry Sibiryakov
7070

71+
* [CORE-4436](http://tracker.firebirdsql.org/browse/CORE-4436): Support for different hash algorithms in HASH system function
72+
Reference(s): [doc/sql.extensions/README.builtin_functions.txt](https://github.com/FirebirdSQL/firebird/raw/master/doc/sql.extensions/README.builtin_functions.txt)
73+
Contributor(s): Adriano dos Santos Fernandes
74+
7175
* [CORE-2557](http://tracker.firebirdsql.org/browse/CORE-2557): Grants on MON$ tables
7276
Contributor(s): Alex Peshkoff
7377

builds/posix/make.shared.variables

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ AllObjects=
2727
CO1:= $(call dirObjects,common)
2828
CO2:= $(call dirObjects,common/classes)
2929
CO3:= $(call dirObjects,common/config)
30-
#CO4:= $(call dirObjects,common/exceptions)
31-
#CO5:= $(call dirObjects,common/sync)
32-
Common_Objects:= $(CO1) $(CO2) $(CO3)
33-
# $(CO4) $(CO5)
30+
CO4:= $(call dirObjects,common/tomcrypt)
31+
#CO5:= $(call dirObjects,common/exceptions)
32+
#CO6:= $(call dirObjects,common/sync)
33+
Common_Objects:= $(CO1) $(CO2) $(CO3) $(CO4)
34+
# $(CO5) $(CO6)
3435

3536
AllObjects += $(Common_Objects)
3637

builds/win32/msvc10/common.vcxproj

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<ClCompile Include="..\..\..\src\common\classes\SyncObject.cpp" />
4646
<ClCompile Include="..\..\..\src\common\classes\TempFile.cpp" />
4747
<ClCompile Include="..\..\..\src\common\classes\timestamp.cpp" />
48+
<ClCompile Include="..\..\..\src\common\classes\TomCryptHash.cpp" />
4849
<ClCompile Include="..\..\..\src\common\classes\UserBlob.cpp" />
4950
<ClCompile Include="..\..\..\src\common\config\config.cpp" />
5051
<ClCompile Include="..\..\..\src\common\config\ConfigCache.cpp" />
@@ -62,6 +63,7 @@
6263
</ClCompile>
6364
<ClCompile Include="..\..\..\src\common\cvt.cpp" />
6465
<ClCompile Include="..\..\..\src\common\db_alias.cpp" />
66+
<ClCompile Include="..\..\..\src\common\DecFloat.cpp" />
6567
<ClCompile Include="..\..\..\src\common\dllinst.cpp" />
6668
<ClCompile Include="..\..\..\src\common\dsc.cpp" />
6769
<ClCompile Include="..\..\..\src\common\DynamicStrings.cpp" />
@@ -91,6 +93,11 @@
9193
<ClCompile Include="..\..\..\src\common\ThreadData.cpp" />
9294
<ClCompile Include="..\..\..\src\common\ThreadStart.cpp" />
9395
<ClCompile Include="..\..\..\src\common\Tokens.cpp" />
96+
<ClCompile Include="..\..\..\src\common\tomcrypt\crypt_argchk.c">
97+
<ClCompile Include="..\..\..\src\common\tomcrypt\md5.c" />
98+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha1.c" />
99+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha256.c" />
100+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha512.c" />
94101
<ClCompile Include="..\..\..\src\common\unicode_util.cpp" />
95102
<ClCompile Include="..\..\..\src\common\utils.cpp" />
96103
<ClCompile Include="..\..\..\src\common\UtilSvc.cpp" />
@@ -158,6 +165,7 @@
158165
<ClInclude Include="..\..\..\src\common\CsConvert.h" />
159166
<ClInclude Include="..\..\..\src\common\cvt.h" />
160167
<ClInclude Include="..\..\..\src\common\db_alias.h" />
168+
<ClInclude Include="..\..\..\src\common\DecFloat.h" />
161169
<ClInclude Include="..\..\..\src\common\dllinst.h" />
162170
<ClInclude Include="..\..\..\src\common\dsc.h" />
163171
<ClInclude Include="..\..\..\src\common\dsc_proto.h" />
@@ -196,6 +204,19 @@
196204
<ClInclude Include="..\..\..\src\common\ThreadData.h" />
197205
<ClInclude Include="..\..\..\src\common\ThreadStart.h" />
198206
<ClInclude Include="..\..\..\src\common\Tokens.h" />
207+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt.h" />
208+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_argchk.h" />
209+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cfg.h" />
210+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cipher.h" />
211+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_custom.h" />
212+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_hash.h" />
213+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_mac.h" />
214+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_macros.h" />
215+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_math.h" />
216+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_misc.h" />
217+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pk.h" />
218+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pkcs.h" />
219+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_prng.h" />
199220
<ClInclude Include="..\..\..\src\common\unicode_util.h" />
200221
<ClInclude Include="..\..\..\src\common\UtilSvc.h" />
201222
<ClInclude Include="..\..\..\src\common\utils_proto.h" />
@@ -283,7 +304,7 @@
283304
<Culture>0x041d</Culture>
284305
</ResourceCompile>
285306
<Lib>
286-
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\Release\tommath.lib;%(AdditionalDependencies)</AdditionalDependencies>
307+
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\$(Configuration)\tommath.lib;../../../extern/decNumber/lib/$(PlatformName)\$(Configuration)\decnumber.lib;%(AdditionalDependencies)</AdditionalDependencies>
287308
</Lib>
288309
</ItemDefinitionGroup>
289310
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@@ -299,7 +320,7 @@
299320
<Culture>0x041d</Culture>
300321
</ResourceCompile>
301322
<Lib>
302-
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\Debug\tommath.lib;%(AdditionalDependencies)</AdditionalDependencies>
323+
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\$(Configuration)\tommath.lib;../../../extern/decNumber/lib/$(PlatformName)\$(Configuration)\decnumber.lib;%(AdditionalDependencies)</AdditionalDependencies>
303324
</Lib>
304325
</ItemDefinitionGroup>
305326
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -318,7 +339,7 @@
318339
<Culture>0x041d</Culture>
319340
</ResourceCompile>
320341
<Lib>
321-
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\Release\tommath.lib;%(AdditionalDependencies)</AdditionalDependencies>
342+
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\$(Configuration)\tommath.lib;../../../extern/decNumber/lib/$(PlatformName)\$(Configuration)\decnumber.lib;%(AdditionalDependencies)</AdditionalDependencies>
322343
</Lib>
323344
</ItemDefinitionGroup>
324345
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -336,7 +357,7 @@
336357
<Culture>0x041d</Culture>
337358
</ResourceCompile>
338359
<Lib>
339-
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\Debug\tommath.lib;%(AdditionalDependencies)</AdditionalDependencies>
360+
<AdditionalDependencies>ws2_32.lib;../../../extern/libtommath/lib/$(PlatformName)\$(Configuration)\tommath.lib;../../../extern/decNumber/lib/$(PlatformName)\$(Configuration)\decnumber.lib;%(AdditionalDependencies)</AdditionalDependencies>
340361
</Lib>
341362
</ItemDefinitionGroup>
342363
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

builds/win32/msvc10/common.vcxproj.filters

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
<Filter Include="headers">
1414
<UniqueIdentifier>{03f83331-723e-4ba5-9ebb-348f0554a088}</UniqueIdentifier>
1515
</Filter>
16+
<Filter Include="tomcrypt">
17+
<UniqueIdentifier>{dd0bb92e-0a1e-4406-96ff-5265e8d28258}</UniqueIdentifier>
18+
</Filter>
1619
</ItemGroup>
1720
<ItemGroup>
1821
<ClCompile Include="..\..\..\src\common\xdr.cpp">
@@ -214,6 +217,27 @@
214217
<Filter>classes</Filter>
215218
</ClCompile>
216219
<ClCompile Include="..\..\..\src\common\CRC32C.cpp">
220+
<Filter>common</Filter>
221+
</ClCompile>
222+
<ClCompile Include="..\..\..\src\common\DecFloat.cpp">
223+
<Filter>classes</Filter>
224+
</ClCompile>
225+
<ClCompile Include="..\..\..\src\common\tomcrypt\crypt_argchk.c">
226+
<Filter>tomcrypt</Filter>
227+
</ClCompile>
228+
<ClCompile Include="..\..\..\src\common\tomcrypt\md5.c">
229+
<Filter>tomcrypt</Filter>
230+
</ClCompile>
231+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha1.c">
232+
<Filter>tomcrypt</Filter>
233+
</ClCompile>
234+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha256.c">
235+
<Filter>tomcrypt</Filter>
236+
</ClCompile>
237+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha512.c">
238+
<Filter>tomcrypt</Filter>
239+
</ClCompile>
240+
<ClCompile Include="..\..\..\src\common\classes\TomCryptHash.cpp">
217241
<Filter>classes</Filter>
218242
</ClCompile>
219243
</ItemGroup>
@@ -530,5 +554,47 @@
530554
<ClInclude Include="..\..\..\src\common\Tokens.h">
531555
<Filter>headers</Filter>
532556
</ClInclude>
557+
<ClInclude Include="..\..\..\src\common\DecFloat.h">
558+
<Filter>headers</Filter>
559+
</ClInclude>
560+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt.h">
561+
<Filter>headers</Filter>
562+
</ClInclude>
563+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_argchk.h">
564+
<Filter>headers</Filter>
565+
</ClInclude>
566+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cfg.h">
567+
<Filter>headers</Filter>
568+
</ClInclude>
569+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cipher.h">
570+
<Filter>headers</Filter>
571+
</ClInclude>
572+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_custom.h">
573+
<Filter>headers</Filter>
574+
</ClInclude>
575+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_hash.h">
576+
<Filter>headers</Filter>
577+
</ClInclude>
578+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_mac.h">
579+
<Filter>headers</Filter>
580+
</ClInclude>
581+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_macros.h">
582+
<Filter>headers</Filter>
583+
</ClInclude>
584+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_math.h">
585+
<Filter>headers</Filter>
586+
</ClInclude>
587+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_misc.h">
588+
<Filter>headers</Filter>
589+
</ClInclude>
590+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pk.h">
591+
<Filter>headers</Filter>
592+
</ClInclude>
593+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pkcs.h">
594+
<Filter>headers</Filter>
595+
</ClInclude>
596+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_prng.h">
597+
<Filter>headers</Filter>
598+
</ClInclude>
533599
</ItemGroup>
534600
</Project>

builds/win32/msvc12/common.vcxproj

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<ClCompile Include="..\..\..\src\common\classes\SyncObject.cpp" />
4646
<ClCompile Include="..\..\..\src\common\classes\TempFile.cpp" />
4747
<ClCompile Include="..\..\..\src\common\classes\timestamp.cpp" />
48+
<ClCompile Include="..\..\..\src\common\classes\TomCryptHash.cpp" />
4849
<ClCompile Include="..\..\..\src\common\classes\UserBlob.cpp" />
4950
<ClCompile Include="..\..\..\src\common\config\config.cpp" />
5051
<ClCompile Include="..\..\..\src\common\config\ConfigCache.cpp" />
@@ -88,6 +89,11 @@
8889
<ClCompile Include="..\..\..\src\common\ThreadData.cpp" />
8990
<ClCompile Include="..\..\..\src\common\ThreadStart.cpp" />
9091
<ClCompile Include="..\..\..\src\common\Tokens.cpp" />
92+
<ClCompile Include="..\..\..\src\common\tomcrypt\crypt_argchk.c">
93+
<ClCompile Include="..\..\..\src\common\tomcrypt\md5.c" />
94+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha1.c" />
95+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha256.c" />
96+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha512.c" />
9197
<ClCompile Include="..\..\..\src\common\unicode_util.cpp" />
9298
<ClCompile Include="..\..\..\src\common\utils.cpp" />
9399
<ClCompile Include="..\..\..\src\common\UtilSvc.cpp" />
@@ -194,6 +200,19 @@
194200
<ClInclude Include="..\..\..\src\common\ThreadData.h" />
195201
<ClInclude Include="..\..\..\src\common\ThreadStart.h" />
196202
<ClInclude Include="..\..\..\src\common\Tokens.h" />
203+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt.h" />
204+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_argchk.h" />
205+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cfg.h" />
206+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cipher.h" />
207+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_custom.h" />
208+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_hash.h" />
209+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_mac.h" />
210+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_macros.h" />
211+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_math.h" />
212+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_misc.h" />
213+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pk.h" />
214+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pkcs.h" />
215+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_prng.h" />
197216
<ClInclude Include="..\..\..\src\common\unicode_util.h" />
198217
<ClInclude Include="..\..\..\src\common\UtilSvc.h" />
199218
<ClInclude Include="..\..\..\src\common\utils_proto.h" />

builds/win32/msvc12/common.vcxproj.filters

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
<Filter Include="headers">
1414
<UniqueIdentifier>{03f83331-723e-4ba5-9ebb-348f0554a088}</UniqueIdentifier>
1515
</Filter>
16+
<Filter Include="tomcrypt">
17+
<UniqueIdentifier>{dd0bb92e-0a1e-4406-96ff-5265e8d28258}</UniqueIdentifier>
18+
</Filter>
1619
</ItemGroup>
1720
<ItemGroup>
1821
<ClCompile Include="..\..\..\src\common\xdr.cpp">
@@ -219,6 +222,24 @@
219222
<ClCompile Include="..\..\..\src\common\DecFloat.cpp">
220223
<Filter>classes</Filter>
221224
</ClCompile>
225+
<ClCompile Include="..\..\..\src\common\tomcrypt\crypt_argchk.c">
226+
<Filter>tomcrypt</Filter>
227+
</ClCompile>
228+
<ClCompile Include="..\..\..\src\common\tomcrypt\md5.c">
229+
<Filter>tomcrypt</Filter>
230+
</ClCompile>
231+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha1.c">
232+
<Filter>tomcrypt</Filter>
233+
</ClCompile>
234+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha256.c">
235+
<Filter>tomcrypt</Filter>
236+
</ClCompile>
237+
<ClCompile Include="..\..\..\src\common\tomcrypt\sha512.c">
238+
<Filter>tomcrypt</Filter>
239+
</ClCompile>
240+
<ClCompile Include="..\..\..\src\common\classes\TomCryptHash.cpp">
241+
<Filter>classes</Filter>
242+
</ClCompile>
222243
</ItemGroup>
223244
<ItemGroup>
224245
<ClInclude Include="..\..\..\src\common\xdr_proto.h">
@@ -536,5 +557,44 @@
536557
<ClInclude Include="..\..\..\src\common\DecFloat.h">
537558
<Filter>headers</Filter>
538559
</ClInclude>
560+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt.h">
561+
<Filter>headers</Filter>
562+
</ClInclude>
563+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_argchk.h">
564+
<Filter>headers</Filter>
565+
</ClInclude>
566+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cfg.h">
567+
<Filter>headers</Filter>
568+
</ClInclude>
569+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_cipher.h">
570+
<Filter>headers</Filter>
571+
</ClInclude>
572+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_custom.h">
573+
<Filter>headers</Filter>
574+
</ClInclude>
575+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_hash.h">
576+
<Filter>headers</Filter>
577+
</ClInclude>
578+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_mac.h">
579+
<Filter>headers</Filter>
580+
</ClInclude>
581+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_macros.h">
582+
<Filter>headers</Filter>
583+
</ClInclude>
584+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_math.h">
585+
<Filter>headers</Filter>
586+
</ClInclude>
587+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_misc.h">
588+
<Filter>headers</Filter>
589+
</ClInclude>
590+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pk.h">
591+
<Filter>headers</Filter>
592+
</ClInclude>
593+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_pkcs.h">
594+
<Filter>headers</Filter>
595+
</ClInclude>
596+
<ClInclude Include="..\..\..\src\common\tomcrypt\tomcrypt_prng.h">
597+
<Filter>headers</Filter>
598+
</ClInclude>
539599
</ItemGroup>
540600
</Project>

0 commit comments

Comments
 (0)