cryptopp 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/Gemfile +14 -0
- data/Guardfile +17 -0
- data/MIT-LICENSE +1 -1
- data/Rakefile +20 -27
- data/VERSION +1 -0
- data/cryptopp.gemspec +7 -182
- data/ext/Rakefile +2 -2
- data/ext/ciphers.cpp +619 -619
- data/ext/cryptopp.cpp +220 -217
- data/ext/cryptopp_ruby_api.h +7 -7
- data/ext/defs/hashes.def +16 -0
- data/ext/defs/hmacs.def +16 -0
- data/ext/digests.cpp +635 -601
- data/ext/extconf.rb +61 -19
- data/ext/j3way.cpp +5 -5
- data/ext/j3way.h +6 -6
- data/ext/jadler32.h +6 -6
- data/ext/jaes.cpp +5 -5
- data/ext/jaes.h +6 -6
- data/ext/jarc4.cpp +5 -5
- data/ext/jarc4.h +6 -6
- data/ext/jbase.cpp +94 -94
- data/ext/jbase.h +49 -55
- data/ext/jbasiccipherinfo.h +23 -23
- data/ext/jblowfish.cpp +5 -5
- data/ext/jblowfish.h +6 -6
- data/ext/jcamellia.cpp +5 -7
- data/ext/jcamellia.h +6 -8
- data/ext/jcast128.cpp +5 -5
- data/ext/jcast128.h +6 -6
- data/ext/jcast256.cpp +5 -5
- data/ext/jcast256.h +6 -6
- data/ext/jcipher.cpp +62 -62
- data/ext/jcipher.h +24 -24
- data/ext/jcipher_t.h +383 -383
- data/ext/jconfig.h +29 -46
- data/ext/jconstants.h +120 -122
- data/ext/jcrc32.h +6 -6
- data/ext/jdes.cpp +5 -5
- data/ext/jdes.h +6 -6
- data/ext/jdes_ede2.cpp +5 -5
- data/ext/jdes_ede2.h +6 -6
- data/ext/jdes_ede3.cpp +5 -5
- data/ext/jdes_ede3.h +6 -6
- data/ext/jdes_xex3.cpp +5 -5
- data/ext/jdes_xex3.h +6 -6
- data/ext/jdiamond2.cpp +5 -5
- data/ext/jdiamond2.h +6 -6
- data/ext/jdiamond2lite.cpp +5 -5
- data/ext/jdiamond2lite.h +6 -6
- data/ext/jexception.h +5 -5
- data/ext/jgost.cpp +5 -5
- data/ext/jgost.h +6 -6
- data/ext/jhash.cpp +51 -51
- data/ext/jhash.h +22 -27
- data/ext/jhash_t.h +59 -59
- data/ext/jhaval.h +15 -15
- data/ext/jhelpers.cpp +54 -54
- data/ext/jhelpers.h +3 -3
- data/ext/jhmac.cpp +20 -20
- data/ext/jhmac.h +15 -15
- data/ext/jhmac_t.h +40 -72
- data/ext/jidea.cpp +5 -5
- data/ext/jidea.h +6 -6
- data/ext/jmarc4.cpp +5 -5
- data/ext/jmarc4.h +6 -6
- data/ext/jmars.cpp +5 -5
- data/ext/jmars.h +6 -6
- data/ext/jmd2.h +9 -9
- data/ext/jmd4.h +9 -9
- data/ext/jmd5.h +9 -9
- data/ext/jpanamacipher.cpp +7 -7
- data/ext/jpanamacipher.h +9 -9
- data/ext/jpanamahash.h +9 -9
- data/ext/jrc2.cpp +15 -15
- data/ext/jrc2.h +11 -11
- data/ext/jrc5.cpp +5 -5
- data/ext/jrc5.h +6 -6
- data/ext/jrc6.cpp +5 -5
- data/ext/jrc6.h +6 -6
- data/ext/jripemd160.h +28 -28
- data/ext/jsafer.cpp +7 -7
- data/ext/jsafer.h +9 -9
- data/ext/jseal.cpp +7 -7
- data/ext/jseal.h +9 -9
- data/ext/jserpent.cpp +5 -5
- data/ext/jserpent.h +6 -6
- data/ext/jsha.h +38 -37
- data/ext/jsha3.h +130 -0
- data/ext/jsha3_blocksizes.h +73 -0
- data/ext/jshacal2.cpp +5 -5
- data/ext/jshacal2.h +6 -6
- data/ext/jshark.cpp +5 -7
- data/ext/jshark.h +6 -8
- data/ext/jsink.cpp +57 -57
- data/ext/jsink.h +127 -123
- data/ext/jskipjack.cpp +5 -5
- data/ext/jskipjack.h +6 -6
- data/ext/jsquare.cpp +5 -5
- data/ext/jsquare.h +6 -6
- data/ext/jstream.cpp +3 -3
- data/ext/jstream.h +3 -3
- data/ext/jstream_t.h +74 -126
- data/ext/jtea.cpp +5 -5
- data/ext/jtea.h +6 -6
- data/ext/jtiger.h +9 -11
- data/ext/jtwofish.cpp +5 -5
- data/ext/jtwofish.h +6 -6
- data/ext/jwhirlpool.h +9 -11
- data/ext/utils.cpp +3 -3
- data/extras/parser_c.rb +102 -102
- data/test/ciphers_test.rb +24 -30
- data/test/data/ciphers/3desval.yml +13 -0
- data/test/data/ciphers/3wayval.yml +17 -0
- data/test/data/ciphers/arc4.yml +22 -0
- data/test/data/ciphers/blowfish.yml +9 -0
- data/test/data/ciphers/camellia.yml +21 -0
- data/test/data/ciphers/cast128v.yml +13 -0
- data/test/data/ciphers/cast256v.yml +13 -0
- data/test/data/ciphers/descert.yml +723 -0
- data/test/data/ciphers/diamond.yml +31 -0
- data/test/data/ciphers/gostval.yml +33 -0
- data/test/data/ciphers/ideaval.yml +45 -0
- data/test/data/ciphers/marsval.yml +37 -0
- data/test/data/ciphers/panamac.yml +11 -0
- data/test/data/ciphers/rc2val.yml +49 -0
- data/test/data/ciphers/rc5val.yml +26 -0
- data/test/data/ciphers/rc6val.yml +25 -0
- data/test/data/ciphers/rijndael.yml +37 -0
- data/test/data/ciphers/saferval.yml +77 -0
- data/test/data/ciphers/seal.yml +6 -0
- data/test/data/ciphers/serpentv.yml +37 -0
- data/test/data/ciphers/shacal2.yml +21 -0
- data/test/data/ciphers/sharkval.yml +29 -0
- data/test/data/ciphers/skipjack.yml +5 -0
- data/test/data/ciphers/squareva.yml +33 -0
- data/test/data/ciphers/twofishv.yml +37 -0
- data/test/data/digests/adler32.yml +19 -0
- data/test/data/digests/crc32.yml +25 -0
- data/test/data/digests/haval.yml +7 -0
- data/test/data/digests/havalcer.yml +1 -0
- data/test/data/digests/md2.yml +22 -0
- data/test/data/digests/md4.yml +22 -0
- data/test/data/digests/md5.yml +22 -0
- data/test/data/digests/panamah.yml +13 -0
- data/test/data/digests/ripemd.yml +97 -0
- data/test/data/digests/sha.yml +25 -0
- data/test/data/digests/sha3.yml +23 -0
- data/test/data/digests/tiger.yml +30 -0
- data/test/data/digests/whirlpool.yml +25 -0
- data/test/data/hmacs/hmac.yml +14 -0
- data/test/digests_test.rb +17 -23
- data/test/hmacs_test.rb +25 -31
- data/test/test_helper.rb +31 -37
- metadata +70 -82
- data/test/data/ciphers/3desval.dat +0 -7
- data/test/data/ciphers/3wayval.dat +0 -6
- data/test/data/ciphers/arc4.dat +0 -8
- data/test/data/ciphers/blowfish.dat +0 -5
- data/test/data/ciphers/camellia.dat +0 -7
- data/test/data/ciphers/cast128v.dat +0 -5
- data/test/data/ciphers/cast256v.dat +0 -5
- data/test/data/ciphers/descert.dat +0 -198
- data/test/data/ciphers/diamond.dat +0 -9
- data/test/data/ciphers/gostval.dat +0 -10
- data/test/data/ciphers/ideaval.dat +0 -13
- data/test/data/ciphers/marsval.dat +0 -11
- data/test/data/ciphers/panamac.dat +0 -7
- data/test/data/ciphers/rc2val.dat +0 -10
- data/test/data/ciphers/rc5val.dat +0 -7
- data/test/data/ciphers/rc6val.dat +0 -8
- data/test/data/ciphers/rijndael.dat +0 -11
- data/test/data/ciphers/saferval.dat +0 -27
- data/test/data/ciphers/seal.dat +0 -3
- data/test/data/ciphers/serpentv.dat +0 -11
- data/test/data/ciphers/shacal2.dat +0 -7
- data/test/data/ciphers/sharkval.dat +0 -9
- data/test/data/ciphers/skipjack.dat +0 -3
- data/test/data/ciphers/squareva.dat +0 -10
- data/test/data/ciphers/twofishv.dat +0 -11
- data/test/data/digests/adler32.dat +0 -8
- data/test/data/digests/crc32.dat +0 -10
- data/test/data/digests/haval.dat +0 -4
- data/test/data/digests/havalcer.dat +0 -23
- data/test/data/digests/md2.dat +0 -9
- data/test/data/digests/md4.dat +0 -9
- data/test/data/digests/md5.dat +0 -9
- data/test/data/digests/panamah.dat +0 -8
- data/test/data/digests/ripemd.dat +0 -43
- data/test/data/digests/sha.dat +0 -19
- data/test/data/digests/tiger.dat +0 -11
- data/test/data/digests/whirlpool.dat +0 -13
- data/test/data/hmacs/hmac.dat +0 -6
data/ext/jconfig.h
CHANGED
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2002-
|
|
4
|
-
* Crypto++ copyright (c) 1995-
|
|
5
|
-
* See
|
|
3
|
+
* Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
|
|
4
|
+
* Crypto++ copyright (c) 1995-2013 Wei Dai
|
|
5
|
+
* See MIT-LICENSE for the extact license
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#ifndef __JCONFIG_H__
|
|
9
9
|
#define __JCONFIG_H__
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
// set these to either 1 or 0 -- 1 for enabled, 0 for
|
|
13
|
-
// disabled, obviously.
|
|
14
|
-
//
|
|
15
|
-
// if we have config.h, rely on that, otherwise, below
|
|
16
|
-
// are the defaults...
|
|
17
|
-
|
|
18
|
-
#ifdef HAVE_CONFIG_H
|
|
19
|
-
#include "config.h"
|
|
20
|
-
#else
|
|
11
|
+
#include "cryptlib.h"
|
|
21
12
|
|
|
22
13
|
#define ENABLED_THREEWAY_CIPHER 1
|
|
23
14
|
#define ENABLED_AES_CIPHER 1
|
|
@@ -71,6 +62,19 @@
|
|
|
71
62
|
#define ENABLED_SHA256_HASH 1
|
|
72
63
|
#define ENABLED_SHA384_HASH 1
|
|
73
64
|
#define ENABLED_SHA512_HASH 1
|
|
65
|
+
#if CRYPTOPP_VERSION >= 562
|
|
66
|
+
#define ENABLED_SHA3_HASH 1
|
|
67
|
+
#define ENABLED_SHA3_224_HASH 1
|
|
68
|
+
#define ENABLED_SHA3_256_HASH 1
|
|
69
|
+
#define ENABLED_SHA3_384_HASH 1
|
|
70
|
+
#define ENABLED_SHA3_512_HASH 1
|
|
71
|
+
#else
|
|
72
|
+
#define ENABLED_SHA3_HASH 0
|
|
73
|
+
#define ENABLED_SHA3_224_HASH 0
|
|
74
|
+
#define ENABLED_SHA3_256_HASH 0
|
|
75
|
+
#define ENABLED_SHA3_384_HASH 0
|
|
76
|
+
#define ENABLED_SHA3_512_HASH 0
|
|
77
|
+
#endif
|
|
74
78
|
#define ENABLED_TIGER_HASH 1
|
|
75
79
|
#define ENABLED_WHIRLPOOL_HASH 1
|
|
76
80
|
|
|
@@ -85,6 +89,18 @@
|
|
|
85
89
|
#define ENABLED_SHA256_HMAC 1
|
|
86
90
|
#define ENABLED_SHA384_HMAC 1
|
|
87
91
|
#define ENABLED_SHA512_HMAC 1
|
|
92
|
+
#if CRYPTOPP_VERSION >= 562
|
|
93
|
+
#define ENABLED_SHA3_224_HMAC 1
|
|
94
|
+
#define ENABLED_SHA3_256_HMAC 1
|
|
95
|
+
#define ENABLED_SHA3_384_HMAC 1
|
|
96
|
+
#define ENABLED_SHA3_512_HMAC 1
|
|
97
|
+
#else
|
|
98
|
+
#warning CRYPTOPP_VERSION
|
|
99
|
+
#define ENABLED_SHA3_224_HMAC 0
|
|
100
|
+
#define ENABLED_SHA3_256_HMAC 0
|
|
101
|
+
#define ENABLED_SHA3_384_HMAC 0
|
|
102
|
+
#define ENABLED_SHA3_512_HMAC 0
|
|
103
|
+
#endif
|
|
88
104
|
#define ENABLED_TIGER_HMAC 1
|
|
89
105
|
#define ENABLED_WHIRLPOOL_HMAC 1
|
|
90
106
|
|
|
@@ -92,36 +108,3 @@
|
|
|
92
108
|
#define ENABLED_CRC32_CHECKSUM 1
|
|
93
109
|
|
|
94
110
|
#endif
|
|
95
|
-
|
|
96
|
-
// just to make sure SHARK and such are disabled if we don't
|
|
97
|
-
// have WORD64 or some version thereof...
|
|
98
|
-
|
|
99
|
-
// test if word64 is available for SHARK, SHA-384, SHA-512 and Tiger.
|
|
100
|
-
|
|
101
|
-
#if defined(__GNUC__) || defined(__MWERKS__) || defined(_MSC_VER) || defined(__BCPLUSPLUS__)
|
|
102
|
-
#define WORD64_AVAILABLE
|
|
103
|
-
#else
|
|
104
|
-
#undef ENABLED_CAMELLIA_CIPHER
|
|
105
|
-
#undef ENABLED_SHARK_CIPHER
|
|
106
|
-
#undef ENABLED_SHA384_HASH
|
|
107
|
-
#undef ENABLED_SHA512_HASH
|
|
108
|
-
#undef ENABLED_SHA384_HMAC
|
|
109
|
-
#undef ENABLED_SHA512_HMAC
|
|
110
|
-
#undef ENABLED_TIGER_HASH
|
|
111
|
-
#undef ENABLED_TIGER_HMAC
|
|
112
|
-
#undef ENABLED_WHIRLPOOL_HASH
|
|
113
|
-
#undef ENABLED_WHIRLPOOL_HMAC
|
|
114
|
-
|
|
115
|
-
#define ENABLED_CAMELLIA_CIPHER 0
|
|
116
|
-
#define ENABLED_SHARK_CIPHER 0
|
|
117
|
-
#define ENABLED_SHA384_HASH 0
|
|
118
|
-
#define ENABLED_SHA512_HASH 0
|
|
119
|
-
#define ENABLED_SHA384_HMAC 0
|
|
120
|
-
#define ENABLED_SHA512_HMAC 0
|
|
121
|
-
#define ENABLED_TIGER_HASH 0
|
|
122
|
-
#define ENABLED_TIGER_HMAC 0
|
|
123
|
-
#define ENABLED_WHIRLPOOL_HASH 0
|
|
124
|
-
#define ENABLED_WHIRLPOOL_HMAC 0
|
|
125
|
-
#endif
|
|
126
|
-
|
|
127
|
-
#endif
|
data/ext/jconstants.h
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2002-
|
|
4
|
-
* Crypto++ copyright (c) 1995-
|
|
5
|
-
* See
|
|
3
|
+
* Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
|
|
4
|
+
* Crypto++ copyright (c) 1995-2013 Wei Dai
|
|
5
|
+
* See MIT-LICENSE for the extact license
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#ifndef __JCONSTANTS_H__
|
|
@@ -10,59 +10,52 @@
|
|
|
10
10
|
|
|
11
11
|
using namespace CryptoPP;
|
|
12
12
|
|
|
13
|
-
// test if word64 is available for SHARK, SHA-384, SHA-512 and Tiger.
|
|
14
|
-
|
|
15
|
-
#if defined(__GNUC__) || defined(__MWERKS__) || defined(_MSC_VER) || defined(__BCPLUSPLUS__)
|
|
16
|
-
#define WORD64_AVAILABLE
|
|
17
|
-
#endif
|
|
18
|
-
|
|
19
|
-
|
|
20
13
|
// Cipher types used in JCipher and JStream...
|
|
21
14
|
|
|
22
15
|
enum CipherEnum {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
16
|
+
UNKNOWN_CIPHER = -1,
|
|
17
|
+
|
|
18
|
+
// Stream ciphers...
|
|
19
|
+
|
|
20
|
+
ARC4_CIPHER,
|
|
21
|
+
PANAMA_LITTLE_ENDIAN_CIPHER,
|
|
22
|
+
PANAMA_BIG_ENDIAN_CIPHER,
|
|
23
|
+
MARC4_CIPHER,
|
|
24
|
+
SEAL_LITTLE_ENDIAN_CIPHER,
|
|
25
|
+
SEAL_BIG_ENDIAN_CIPHER,
|
|
26
|
+
|
|
27
|
+
// Block Ciphers...
|
|
28
|
+
|
|
29
|
+
THREEWAY_CIPHER,
|
|
30
|
+
AES_CIPHER,
|
|
31
|
+
BLOWFISH_CIPHER,
|
|
32
|
+
CAST128_CIPHER,
|
|
33
|
+
CAST256_CIPHER,
|
|
34
|
+
DES_CIPHER,
|
|
35
|
+
DES_EDE2_CIPHER,
|
|
36
|
+
DES_EDE3_CIPHER,
|
|
37
|
+
DES_XEX3_CIPHER,
|
|
38
|
+
DIAMOND2_CIPHER,
|
|
39
|
+
DIAMOND2_LITE_CIPHER,
|
|
40
|
+
GOST_CIPHER,
|
|
41
|
+
IDEA_CIPHER,
|
|
42
|
+
MARS_CIPHER,
|
|
43
|
+
RC2_CIPHER,
|
|
44
|
+
RC5_CIPHER,
|
|
45
|
+
RC6_CIPHER,
|
|
46
|
+
SAFER_K_CIPHER,
|
|
47
|
+
SAFER_SK_CIPHER,
|
|
48
|
+
SERPENT_CIPHER,
|
|
49
|
+
SKIPJACK_CIPHER,
|
|
50
|
+
SQUARE_CIPHER,
|
|
51
|
+
TEA_CIPHER,
|
|
52
|
+
TWOFISH_CIPHER,
|
|
53
|
+
SHARK_CIPHER,
|
|
54
|
+
|
|
55
|
+
// Ciphers from Crypto++ 5.2.1...
|
|
56
|
+
|
|
57
|
+
CAMELLIA_CIPHER,
|
|
58
|
+
SHACAL2_CIPHER
|
|
66
59
|
};
|
|
67
60
|
|
|
68
61
|
#define PANAMA_CIPHER PANAMA_LITTLE_ENDIAN_CIPHER
|
|
@@ -81,10 +74,10 @@ enum CipherEnum {
|
|
|
81
74
|
// Block cipher modes used in JCipher...
|
|
82
75
|
|
|
83
76
|
enum ModeEnum {
|
|
84
|
-
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
#
|
|
77
|
+
UNKNOWN_MODE = -1,
|
|
78
|
+
# define BLOCK_MODE_X(c, s) \
|
|
79
|
+
c ## _MODE,
|
|
80
|
+
# include "defs/block_modes.def"
|
|
88
81
|
};
|
|
89
82
|
|
|
90
83
|
#define VALID_MODE(x) (x > UNKNOWN_MODE && x <= OFB_MODE)
|
|
@@ -93,10 +86,10 @@ enum ModeEnum {
|
|
|
93
86
|
// Block cipher padding used in JCipher...
|
|
94
87
|
|
|
95
88
|
enum PaddingEnum {
|
|
96
|
-
|
|
97
|
-
#
|
|
98
|
-
|
|
99
|
-
#
|
|
89
|
+
UNKNOWN_PADDING = -1,
|
|
90
|
+
# define PADDING_X(c, s) \
|
|
91
|
+
c ## _PADDING = StreamTransformationFilter::c ## _PADDING,
|
|
92
|
+
# include "defs/paddings.def"
|
|
100
93
|
};
|
|
101
94
|
|
|
102
95
|
#define VALID_PADDING(x) (x > UNKNOWN_PADDING && x <= DEFAULT_PADDING)
|
|
@@ -105,54 +98,65 @@ enum PaddingEnum {
|
|
|
105
98
|
// Hashes... and HMAC stuff, too...
|
|
106
99
|
|
|
107
100
|
enum HashEnum {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
101
|
+
UNKNOWN_HASH = -1,
|
|
102
|
+
|
|
103
|
+
// These are checksums, not cryptographic hashes...
|
|
104
|
+
|
|
105
|
+
ADLER32_CHECKSUM,
|
|
106
|
+
CRC32_CHECKSUM,
|
|
107
|
+
|
|
108
|
+
// These are hashes. And message digests. ...
|
|
109
|
+
|
|
110
|
+
HAVAL_HASH,
|
|
111
|
+
HAVAL3_HASH,
|
|
112
|
+
HAVAL4_HASH,
|
|
113
|
+
HAVAL5_HASH,
|
|
114
|
+
MD2_HASH,
|
|
115
|
+
MD4_HASH,
|
|
116
|
+
MD5_HASH,
|
|
117
|
+
PANAMA_LITTLE_ENDIAN_HASH,
|
|
118
|
+
PANAMA_BIG_ENDIAN_HASH,
|
|
119
|
+
RIPEMD160_HASH,
|
|
120
|
+
SHA1_HASH,
|
|
121
|
+
SHA256_HASH,
|
|
122
|
+
SHA384_HASH,
|
|
123
|
+
SHA512_HASH,
|
|
124
|
+
TIGER_HASH,
|
|
125
|
+
|
|
126
|
+
// These are for HMAC hashes...
|
|
127
|
+
|
|
128
|
+
MD2_HMAC,
|
|
129
|
+
MD4_HMAC,
|
|
130
|
+
MD5_HMAC,
|
|
131
|
+
RIPEMD160_HMAC,
|
|
132
|
+
SHA1_HMAC,
|
|
133
|
+
SHA256_HMAC,
|
|
134
|
+
SHA384_HMAC,
|
|
135
|
+
SHA512_HMAC,
|
|
136
|
+
TIGER_HMAC,
|
|
137
|
+
|
|
138
|
+
// Newer hashes and HMACs from Crypto++ 5.2.1...
|
|
139
|
+
|
|
140
|
+
RIPEMD128_HASH,
|
|
141
|
+
RIPEMD256_HASH,
|
|
142
|
+
RIPEMD320_HASH,
|
|
143
|
+
WHIRLPOOL_HASH,
|
|
144
|
+
|
|
145
|
+
RIPEMD128_HMAC,
|
|
146
|
+
RIPEMD256_HMAC,
|
|
147
|
+
RIPEMD320_HMAC,
|
|
148
|
+
WHIRLPOOL_HMAC,
|
|
149
|
+
|
|
150
|
+
// SHA3 from Crypto++ 5.6.2...
|
|
151
|
+
SHA3_224_HASH,
|
|
152
|
+
SHA3_256_HASH,
|
|
153
|
+
SHA3_384_HASH,
|
|
154
|
+
SHA3_512_HASH,
|
|
155
|
+
|
|
156
|
+
SHA3_224_HMAC,
|
|
157
|
+
SHA3_256_HMAC,
|
|
158
|
+
SHA3_384_HMAC,
|
|
159
|
+
SHA3_512_HMAC
|
|
156
160
|
};
|
|
157
161
|
|
|
158
162
|
#define PANAMA_HASH PANAMA_LITTLE_ENDIAN_HASH
|
|
@@ -161,29 +165,23 @@ enum HashEnum {
|
|
|
161
165
|
// this is to figure out if we're dealing
|
|
162
166
|
// with a HMAC or a regular hash...
|
|
163
167
|
|
|
164
|
-
#define IS_HMAC(x) \
|
|
165
|
-
(((x > TIGER_HASH && x < RIPEMD128_HASH) || x >= RIPEMD128_HMAC))
|
|
166
|
-
#define IS_NON_HMAC(x) \
|
|
167
|
-
((x <= TIGER_HASH || (x >= RIPEMD128_HASH && x <= WHIRLPOOL_HASH)))
|
|
168
|
-
|
|
169
|
-
|
|
170
168
|
// random number generators...
|
|
171
169
|
|
|
172
170
|
enum RNGEnum {
|
|
173
|
-
|
|
174
|
-
#
|
|
175
|
-
|
|
176
|
-
#
|
|
171
|
+
UNKNOWN_RNG = -1,
|
|
172
|
+
# define RNG_X(c, s) \
|
|
173
|
+
c ## _RNG,
|
|
174
|
+
# include "defs/rngs.def"
|
|
177
175
|
};
|
|
178
176
|
|
|
179
177
|
#define VALID_RNG(x) (x > UNKNOWN_RNG && x <= RAND_RNG)
|
|
180
178
|
|
|
181
179
|
#ifdef NONBLOCKING_RNG_AVAILABLE
|
|
182
|
-
|
|
180
|
+
#define DEFAULT_RNG NON_BLOCKING_RNG
|
|
183
181
|
#elif defined(BLOCKING_RNG_AVAILABLE)
|
|
184
|
-
|
|
182
|
+
#define DEFAULT_RNG BLOCKING_RNG
|
|
185
183
|
#else
|
|
186
|
-
|
|
184
|
+
#define DEFAULT_RNG RAND_RNG
|
|
187
185
|
#endif
|
|
188
186
|
|
|
189
187
|
#endif
|
data/ext/jcrc32.h
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2002-
|
|
4
|
-
* Crypto++ copyright (c) 1995-
|
|
5
|
-
* See
|
|
3
|
+
* Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
|
|
4
|
+
* Crypto++ copyright (c) 1995-2013 Wei Dai
|
|
5
|
+
* See MIT-LICENSE for the extact license
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#ifndef __JCRC32_H__
|
|
@@ -22,10 +22,10 @@ using namespace CryptoPP;
|
|
|
22
22
|
|
|
23
23
|
class JCRC32 : public JHash_Template<CRC32, CRC32_CHECKSUM>
|
|
24
24
|
{
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
public:
|
|
26
|
+
JCRC32(string plaintext = "") : JHash_Template<CRC32, CRC32_CHECKSUM>(plaintext) { }
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
static string getHashName() { return "CRC32"; }
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
#endif
|
data/ext/jdes.cpp
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2002-
|
|
4
|
-
* Crypto++ copyright (c) 1995-
|
|
5
|
-
* See
|
|
3
|
+
* Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
|
|
4
|
+
* Crypto++ copyright (c) 1995-2013 Wei Dai
|
|
5
|
+
* See MIT-LICENSE for the extact license
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#include "jdes.h"
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
BlockCipher* JDES::getEncryptionObject()
|
|
13
13
|
{
|
|
14
|
-
|
|
14
|
+
return new DESEncryption((byte*) itsKey.data(), itsKeylength);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
BlockCipher* JDES::getDecryptionObject()
|
|
18
18
|
{
|
|
19
|
-
|
|
19
|
+
return new DESDecryption((byte*) itsKey.data(), itsKeylength);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
#endif
|
data/ext/jdes.h
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2002-
|
|
4
|
-
* Crypto++ copyright (c) 1995-
|
|
5
|
-
* See
|
|
3
|
+
* Copyright (c) 2002-2014 J Smith <dark.panda@gmail.com>
|
|
4
|
+
* Crypto++ copyright (c) 1995-2013 Wei Dai
|
|
5
|
+
* See MIT-LICENSE for the extact license
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#ifndef __JDES_H__
|
|
@@ -22,9 +22,9 @@ using namespace CryptoPP;
|
|
|
22
22
|
|
|
23
23
|
class JDES : public JCipher_Template<DES_Info, DES_CIPHER>
|
|
24
24
|
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
protected:
|
|
26
|
+
BlockCipher* getEncryptionObject();
|
|
27
|
+
BlockCipher* getDecryptionObject();
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
#endif
|