openssl_rsa_pss_verify 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. data/.gitignore +5 -0
  2. data/.rspec +2 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +35 -0
  7. data/README +1 -0
  8. data/Rakefile +4 -0
  9. data/ext/openssl_rsa_pss_verify/extconf.rb +15 -0
  10. data/ext/openssl_rsa_pss_verify/openssl_rsa_pss_verify_ext.c +56 -0
  11. data/lib/openssl_rsa_pss_verify/version.rb +3 -0
  12. data/lib/openssl_rsa_pss_verify.rb +2 -0
  13. data/openssl_rsa_pss_verify.gemspec +26 -0
  14. data/tasks/compile.rake +12 -0
  15. data/tasks/rspec.rake +12 -0
  16. data/vendor/openssl/include/openssl/aes.h +147 -0
  17. data/vendor/openssl/include/openssl/asn1.h +1404 -0
  18. data/vendor/openssl/include/openssl/asn1_mac.h +578 -0
  19. data/vendor/openssl/include/openssl/asn1t.h +960 -0
  20. data/vendor/openssl/include/openssl/bio.h +847 -0
  21. data/vendor/openssl/include/openssl/blowfish.h +129 -0
  22. data/vendor/openssl/include/openssl/bn.h +891 -0
  23. data/vendor/openssl/include/openssl/buffer.h +119 -0
  24. data/vendor/openssl/include/openssl/camellia.h +130 -0
  25. data/vendor/openssl/include/openssl/cast.h +107 -0
  26. data/vendor/openssl/include/openssl/cmac.h +82 -0
  27. data/vendor/openssl/include/openssl/cms.h +501 -0
  28. data/vendor/openssl/include/openssl/comp.h +80 -0
  29. data/vendor/openssl/include/openssl/conf.h +263 -0
  30. data/vendor/openssl/include/openssl/conf_api.h +89 -0
  31. data/vendor/openssl/include/openssl/crypto.h +611 -0
  32. data/vendor/openssl/include/openssl/des.h +248 -0
  33. data/vendor/openssl/include/openssl/des_old.h +446 -0
  34. data/vendor/openssl/include/openssl/dh.h +280 -0
  35. data/vendor/openssl/include/openssl/dsa.h +327 -0
  36. data/vendor/openssl/include/openssl/dso.h +409 -0
  37. data/vendor/openssl/include/openssl/dtls1.h +287 -0
  38. data/vendor/openssl/include/openssl/e_os2.h +315 -0
  39. data/vendor/openssl/include/openssl/ebcdic.h +19 -0
  40. data/vendor/openssl/include/openssl/ec.h +1167 -0
  41. data/vendor/openssl/include/openssl/ecdh.h +125 -0
  42. data/vendor/openssl/include/openssl/ecdsa.h +260 -0
  43. data/vendor/openssl/include/openssl/engine.h +842 -0
  44. data/vendor/openssl/include/openssl/err.h +386 -0
  45. data/vendor/openssl/include/openssl/evp.h +1409 -0
  46. data/vendor/openssl/include/openssl/hmac.h +110 -0
  47. data/vendor/openssl/include/openssl/idea.h +103 -0
  48. data/vendor/openssl/include/openssl/krb5_asn.h +256 -0
  49. data/vendor/openssl/include/openssl/kssl.h +183 -0
  50. data/vendor/openssl/include/openssl/lhash.h +241 -0
  51. data/vendor/openssl/include/openssl/md4.h +120 -0
  52. data/vendor/openssl/include/openssl/md5.h +120 -0
  53. data/vendor/openssl/include/openssl/mdc2.h +98 -0
  54. data/vendor/openssl/include/openssl/modes.h +135 -0
  55. data/vendor/openssl/include/openssl/obj_mac.h +4032 -0
  56. data/vendor/openssl/include/openssl/objects.h +1138 -0
  57. data/vendor/openssl/include/openssl/ocsp.h +623 -0
  58. data/vendor/openssl/include/openssl/opensslconf.h +234 -0
  59. data/vendor/openssl/include/openssl/opensslv.h +89 -0
  60. data/vendor/openssl/include/openssl/ossl_typ.h +202 -0
  61. data/vendor/openssl/include/openssl/pem.h +641 -0
  62. data/vendor/openssl/include/openssl/pem2.h +70 -0
  63. data/vendor/openssl/include/openssl/pkcs12.h +331 -0
  64. data/vendor/openssl/include/openssl/pkcs7.h +499 -0
  65. data/vendor/openssl/include/openssl/pqueue.h +94 -0
  66. data/vendor/openssl/include/openssl/rand.h +149 -0
  67. data/vendor/openssl/include/openssl/rc2.h +103 -0
  68. data/vendor/openssl/include/openssl/rc4.h +90 -0
  69. data/vendor/openssl/include/openssl/ripemd.h +107 -0
  70. data/vendor/openssl/include/openssl/rsa.h +582 -0
  71. data/vendor/openssl/include/openssl/safestack.h +2663 -0
  72. data/vendor/openssl/include/openssl/seed.h +139 -0
  73. data/vendor/openssl/include/openssl/sha.h +214 -0
  74. data/vendor/openssl/include/openssl/srp.h +172 -0
  75. data/vendor/openssl/include/openssl/srtp.h +145 -0
  76. data/vendor/openssl/include/openssl/ssl.h +2579 -0
  77. data/vendor/openssl/include/openssl/ssl2.h +272 -0
  78. data/vendor/openssl/include/openssl/ssl23.h +83 -0
  79. data/vendor/openssl/include/openssl/ssl3.h +684 -0
  80. data/vendor/openssl/include/openssl/stack.h +108 -0
  81. data/vendor/openssl/include/openssl/symhacks.h +475 -0
  82. data/vendor/openssl/include/openssl/tls1.h +735 -0
  83. data/vendor/openssl/include/openssl/ts.h +858 -0
  84. data/vendor/openssl/include/openssl/txt_db.h +112 -0
  85. data/vendor/openssl/include/openssl/ui.h +383 -0
  86. data/vendor/openssl/include/openssl/ui_compat.h +83 -0
  87. data/vendor/openssl/include/openssl/whrlpool.h +41 -0
  88. data/vendor/openssl/include/openssl/x509.h +1297 -0
  89. data/vendor/openssl/include/openssl/x509_vfy.h +567 -0
  90. data/vendor/openssl/include/openssl/x509v3.h +1007 -0
  91. data/vendor/openssl/lib/engines/lib4758cca.so +0 -0
  92. data/vendor/openssl/lib/engines/libaep.so +0 -0
  93. data/vendor/openssl/lib/engines/libatalla.so +0 -0
  94. data/vendor/openssl/lib/engines/libcapi.so +0 -0
  95. data/vendor/openssl/lib/engines/libchil.so +0 -0
  96. data/vendor/openssl/lib/engines/libcswift.so +0 -0
  97. data/vendor/openssl/lib/engines/libgmp.so +0 -0
  98. data/vendor/openssl/lib/engines/libgost.so +0 -0
  99. data/vendor/openssl/lib/engines/libnuron.so +0 -0
  100. data/vendor/openssl/lib/engines/libpadlock.so +0 -0
  101. data/vendor/openssl/lib/engines/libsureware.so +0 -0
  102. data/vendor/openssl/lib/engines/libubsec.so +0 -0
  103. data/vendor/openssl/lib/libcrypto.a +0 -0
  104. data/vendor/openssl/lib/libcrypto.so +0 -0
  105. data/vendor/openssl/lib/libcrypto.so.1.0.0 +0 -0
  106. data/vendor/openssl/lib/libssl.a +0 -0
  107. data/vendor/openssl/lib/libssl.so +0 -0
  108. data/vendor/openssl/lib/libssl.so.1.0.0 +0 -0
  109. data/vendor/openssl/lib/pkgconfig/libcrypto.pc +12 -0
  110. data/vendor/openssl/lib/pkgconfig/libssl.pc +12 -0
  111. data/vendor/openssl/lib/pkgconfig/openssl.pc +12 -0
  112. metadata +208 -0
@@ -0,0 +1,119 @@
1
+ /* crypto/buffer/buffer.h */
2
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3
+ * All rights reserved.
4
+ *
5
+ * This package is an SSL implementation written
6
+ * by Eric Young (eay@cryptsoft.com).
7
+ * The implementation was written so as to conform with Netscapes SSL.
8
+ *
9
+ * This library is free for commercial and non-commercial use as long as
10
+ * the following conditions are aheared to. The following conditions
11
+ * apply to all code found in this distribution, be it the RC4, RSA,
12
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13
+ * included with this distribution is covered by the same copyright terms
14
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15
+ *
16
+ * Copyright remains Eric Young's, and as such any Copyright notices in
17
+ * the code are not to be removed.
18
+ * If this package is used in a product, Eric Young should be given attribution
19
+ * as the author of the parts of the library used.
20
+ * This can be in the form of a textual message at program startup or
21
+ * in documentation (online or textual) provided with the package.
22
+ *
23
+ * Redistribution and use in source and binary forms, with or without
24
+ * modification, are permitted provided that the following conditions
25
+ * are met:
26
+ * 1. Redistributions of source code must retain the copyright
27
+ * notice, this list of conditions and the following disclaimer.
28
+ * 2. Redistributions in binary form must reproduce the above copyright
29
+ * notice, this list of conditions and the following disclaimer in the
30
+ * documentation and/or other materials provided with the distribution.
31
+ * 3. All advertising materials mentioning features or use of this software
32
+ * must display the following acknowledgement:
33
+ * "This product includes cryptographic software written by
34
+ * Eric Young (eay@cryptsoft.com)"
35
+ * The word 'cryptographic' can be left out if the rouines from the library
36
+ * being used are not cryptographic related :-).
37
+ * 4. If you include any Windows specific code (or a derivative thereof) from
38
+ * the apps directory (application code) you must include an acknowledgement:
39
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40
+ *
41
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51
+ * SUCH DAMAGE.
52
+ *
53
+ * The licence and distribution terms for any publically available version or
54
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
55
+ * copied and put under another distribution licence
56
+ * [including the GNU Public Licence.]
57
+ */
58
+
59
+ #ifndef HEADER_BUFFER_H
60
+ #define HEADER_BUFFER_H
61
+
62
+ #include <openssl/ossl_typ.h>
63
+
64
+ #ifdef __cplusplus
65
+ extern "C" {
66
+ #endif
67
+
68
+ #include <stddef.h>
69
+
70
+ #if !defined(NO_SYS_TYPES_H)
71
+ #include <sys/types.h>
72
+ #endif
73
+
74
+ /* Already declared in ossl_typ.h */
75
+ /* typedef struct buf_mem_st BUF_MEM; */
76
+
77
+ struct buf_mem_st
78
+ {
79
+ size_t length; /* current number of bytes */
80
+ char *data;
81
+ size_t max; /* size of buffer */
82
+ };
83
+
84
+ BUF_MEM *BUF_MEM_new(void);
85
+ void BUF_MEM_free(BUF_MEM *a);
86
+ int BUF_MEM_grow(BUF_MEM *str, size_t len);
87
+ int BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
88
+ char * BUF_strdup(const char *str);
89
+ char * BUF_strndup(const char *str, size_t siz);
90
+ void * BUF_memdup(const void *data, size_t siz);
91
+ void BUF_reverse(unsigned char *out, unsigned char *in, size_t siz);
92
+
93
+ /* safe string functions */
94
+ size_t BUF_strlcpy(char *dst,const char *src,size_t siz);
95
+ size_t BUF_strlcat(char *dst,const char *src,size_t siz);
96
+
97
+
98
+ /* BEGIN ERROR CODES */
99
+ /* The following lines are auto generated by the script mkerr.pl. Any changes
100
+ * made after this point may be overwritten when the script is next run.
101
+ */
102
+ void ERR_load_BUF_strings(void);
103
+
104
+ /* Error codes for the BUF functions. */
105
+
106
+ /* Function codes. */
107
+ #define BUF_F_BUF_MEMDUP 103
108
+ #define BUF_F_BUF_MEM_GROW 100
109
+ #define BUF_F_BUF_MEM_GROW_CLEAN 105
110
+ #define BUF_F_BUF_MEM_NEW 101
111
+ #define BUF_F_BUF_STRDUP 102
112
+ #define BUF_F_BUF_STRNDUP 104
113
+
114
+ /* Reason codes. */
115
+
116
+ #ifdef __cplusplus
117
+ }
118
+ #endif
119
+ #endif
@@ -0,0 +1,130 @@
1
+ /* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */
2
+ /* ====================================================================
3
+ * Copyright (c) 2006 The OpenSSL Project. All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions
7
+ * are met:
8
+ *
9
+ * 1. Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ *
12
+ * 2. Redistributions in binary form must reproduce the above copyright
13
+ * notice, this list of conditions and the following disclaimer in
14
+ * the documentation and/or other materials provided with the
15
+ * distribution.
16
+ *
17
+ * 3. All advertising materials mentioning features or use of this
18
+ * software must display the following acknowledgment:
19
+ * "This product includes software developed by the OpenSSL Project
20
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21
+ *
22
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23
+ * endorse or promote products derived from this software without
24
+ * prior written permission. For written permission, please contact
25
+ * openssl-core@openssl.org.
26
+ *
27
+ * 5. Products derived from this software may not be called "OpenSSL"
28
+ * nor may "OpenSSL" appear in their names without prior written
29
+ * permission of the OpenSSL Project.
30
+ *
31
+ * 6. Redistributions of any form whatsoever must retain the following
32
+ * acknowledgment:
33
+ * "This product includes software developed by the OpenSSL Project
34
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35
+ *
36
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
48
+ * ====================================================================
49
+ *
50
+ */
51
+
52
+ #ifndef HEADER_CAMELLIA_H
53
+ #define HEADER_CAMELLIA_H
54
+
55
+ #include <openssl/opensslconf.h>
56
+
57
+ #ifdef OPENSSL_NO_CAMELLIA
58
+ #error CAMELLIA is disabled.
59
+ #endif
60
+
61
+ #include <stddef.h>
62
+
63
+ #define CAMELLIA_ENCRYPT 1
64
+ #define CAMELLIA_DECRYPT 0
65
+
66
+ /* Because array size can't be a const in C, the following two are macros.
67
+ Both sizes are in bytes. */
68
+
69
+ #ifdef __cplusplus
70
+ extern "C" {
71
+ #endif
72
+
73
+ /* This should be a hidden type, but EVP requires that the size be known */
74
+
75
+ #define CAMELLIA_BLOCK_SIZE 16
76
+ #define CAMELLIA_TABLE_BYTE_LEN 272
77
+ #define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4)
78
+
79
+ typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match with WORD */
80
+
81
+ struct camellia_key_st
82
+ {
83
+ union {
84
+ double d; /* ensures 64-bit align */
85
+ KEY_TABLE_TYPE rd_key;
86
+ } u;
87
+ int grand_rounds;
88
+ };
89
+ typedef struct camellia_key_st CAMELLIA_KEY;
90
+
91
+ #ifdef OPENSSL_FIPS
92
+ int private_Camellia_set_key(const unsigned char *userKey, const int bits,
93
+ CAMELLIA_KEY *key);
94
+ #endif
95
+ int Camellia_set_key(const unsigned char *userKey, const int bits,
96
+ CAMELLIA_KEY *key);
97
+
98
+ void Camellia_encrypt(const unsigned char *in, unsigned char *out,
99
+ const CAMELLIA_KEY *key);
100
+ void Camellia_decrypt(const unsigned char *in, unsigned char *out,
101
+ const CAMELLIA_KEY *key);
102
+
103
+ void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,
104
+ const CAMELLIA_KEY *key, const int enc);
105
+ void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,
106
+ size_t length, const CAMELLIA_KEY *key,
107
+ unsigned char *ivec, const int enc);
108
+ void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out,
109
+ size_t length, const CAMELLIA_KEY *key,
110
+ unsigned char *ivec, int *num, const int enc);
111
+ void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out,
112
+ size_t length, const CAMELLIA_KEY *key,
113
+ unsigned char *ivec, int *num, const int enc);
114
+ void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out,
115
+ size_t length, const CAMELLIA_KEY *key,
116
+ unsigned char *ivec, int *num, const int enc);
117
+ void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out,
118
+ size_t length, const CAMELLIA_KEY *key,
119
+ unsigned char *ivec, int *num);
120
+ void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out,
121
+ size_t length, const CAMELLIA_KEY *key,
122
+ unsigned char ivec[CAMELLIA_BLOCK_SIZE],
123
+ unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE],
124
+ unsigned int *num);
125
+
126
+ #ifdef __cplusplus
127
+ }
128
+ #endif
129
+
130
+ #endif /* !HEADER_Camellia_H */
@@ -0,0 +1,107 @@
1
+ /* crypto/cast/cast.h */
2
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3
+ * All rights reserved.
4
+ *
5
+ * This package is an SSL implementation written
6
+ * by Eric Young (eay@cryptsoft.com).
7
+ * The implementation was written so as to conform with Netscapes SSL.
8
+ *
9
+ * This library is free for commercial and non-commercial use as long as
10
+ * the following conditions are aheared to. The following conditions
11
+ * apply to all code found in this distribution, be it the RC4, RSA,
12
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13
+ * included with this distribution is covered by the same copyright terms
14
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15
+ *
16
+ * Copyright remains Eric Young's, and as such any Copyright notices in
17
+ * the code are not to be removed.
18
+ * If this package is used in a product, Eric Young should be given attribution
19
+ * as the author of the parts of the library used.
20
+ * This can be in the form of a textual message at program startup or
21
+ * in documentation (online or textual) provided with the package.
22
+ *
23
+ * Redistribution and use in source and binary forms, with or without
24
+ * modification, are permitted provided that the following conditions
25
+ * are met:
26
+ * 1. Redistributions of source code must retain the copyright
27
+ * notice, this list of conditions and the following disclaimer.
28
+ * 2. Redistributions in binary form must reproduce the above copyright
29
+ * notice, this list of conditions and the following disclaimer in the
30
+ * documentation and/or other materials provided with the distribution.
31
+ * 3. All advertising materials mentioning features or use of this software
32
+ * must display the following acknowledgement:
33
+ * "This product includes cryptographic software written by
34
+ * Eric Young (eay@cryptsoft.com)"
35
+ * The word 'cryptographic' can be left out if the rouines from the library
36
+ * being used are not cryptographic related :-).
37
+ * 4. If you include any Windows specific code (or a derivative thereof) from
38
+ * the apps directory (application code) you must include an acknowledgement:
39
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40
+ *
41
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51
+ * SUCH DAMAGE.
52
+ *
53
+ * The licence and distribution terms for any publically available version or
54
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
55
+ * copied and put under another distribution licence
56
+ * [including the GNU Public Licence.]
57
+ */
58
+
59
+ #ifndef HEADER_CAST_H
60
+ #define HEADER_CAST_H
61
+
62
+ #ifdef __cplusplus
63
+ extern "C" {
64
+ #endif
65
+
66
+ #include <openssl/opensslconf.h>
67
+
68
+ #ifdef OPENSSL_NO_CAST
69
+ #error CAST is disabled.
70
+ #endif
71
+
72
+ #define CAST_ENCRYPT 1
73
+ #define CAST_DECRYPT 0
74
+
75
+ #define CAST_LONG unsigned int
76
+
77
+ #define CAST_BLOCK 8
78
+ #define CAST_KEY_LENGTH 16
79
+
80
+ typedef struct cast_key_st
81
+ {
82
+ CAST_LONG data[32];
83
+ int short_key; /* Use reduced rounds for short key */
84
+ } CAST_KEY;
85
+
86
+ #ifdef OPENSSL_FIPS
87
+ void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
88
+ #endif
89
+ void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data);
90
+ void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, const CAST_KEY *key,
91
+ int enc);
92
+ void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key);
93
+ void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key);
94
+ void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
95
+ const CAST_KEY *ks, unsigned char *iv, int enc);
96
+ void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,
97
+ long length, const CAST_KEY *schedule, unsigned char *ivec,
98
+ int *num, int enc);
99
+ void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out,
100
+ long length, const CAST_KEY *schedule, unsigned char *ivec,
101
+ int *num);
102
+
103
+ #ifdef __cplusplus
104
+ }
105
+ #endif
106
+
107
+ #endif
@@ -0,0 +1,82 @@
1
+ /* crypto/cmac/cmac.h */
2
+ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3
+ * project.
4
+ */
5
+ /* ====================================================================
6
+ * Copyright (c) 2010 The OpenSSL Project. All rights reserved.
7
+ *
8
+ * Redistribution and use in source and binary forms, with or without
9
+ * modification, are permitted provided that the following conditions
10
+ * are met:
11
+ *
12
+ * 1. Redistributions of source code must retain the above copyright
13
+ * notice, this list of conditions and the following disclaimer.
14
+ *
15
+ * 2. Redistributions in binary form must reproduce the above copyright
16
+ * notice, this list of conditions and the following disclaimer in
17
+ * the documentation and/or other materials provided with the
18
+ * distribution.
19
+ *
20
+ * 3. All advertising materials mentioning features or use of this
21
+ * software must display the following acknowledgment:
22
+ * "This product includes software developed by the OpenSSL Project
23
+ * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
24
+ *
25
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
26
+ * endorse or promote products derived from this software without
27
+ * prior written permission. For written permission, please contact
28
+ * licensing@OpenSSL.org.
29
+ *
30
+ * 5. Products derived from this software may not be called "OpenSSL"
31
+ * nor may "OpenSSL" appear in their names without prior written
32
+ * permission of the OpenSSL Project.
33
+ *
34
+ * 6. Redistributions of any form whatsoever must retain the following
35
+ * acknowledgment:
36
+ * "This product includes software developed by the OpenSSL Project
37
+ * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
38
+ *
39
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
40
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
41
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
42
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
43
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
45
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
46
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
48
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
51
+ * ====================================================================
52
+ */
53
+
54
+
55
+ #ifndef HEADER_CMAC_H
56
+ #define HEADER_CMAC_H
57
+
58
+ #ifdef __cplusplus
59
+ extern "C" {
60
+ #endif
61
+
62
+ #include <openssl/evp.h>
63
+
64
+ /* Opaque */
65
+ typedef struct CMAC_CTX_st CMAC_CTX;
66
+
67
+ CMAC_CTX *CMAC_CTX_new(void);
68
+ void CMAC_CTX_cleanup(CMAC_CTX *ctx);
69
+ void CMAC_CTX_free(CMAC_CTX *ctx);
70
+ EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx);
71
+ int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in);
72
+
73
+ int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
74
+ const EVP_CIPHER *cipher, ENGINE *impl);
75
+ int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen);
76
+ int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen);
77
+ int CMAC_resume(CMAC_CTX *ctx);
78
+
79
+ #ifdef __cplusplus
80
+ }
81
+ #endif
82
+ #endif