︙ | | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
-
+
|
*-------------------------------------------------------------------
*/
EVP_CIPHER *Util_GetCipher(Tcl_Interp *interp, Tcl_Obj *cipherObj, int no_null) {
EVP_CIPHER *cipher = NULL;
char *name = NULL;
if (cipherObj != NULL) {
name = Tcl_GetStringFromObj(cipherObj, NULL);
name = Tcl_GetStringFromObj(cipherObj, (Tcl_Size *) NULL);
#if OPENSSL_VERSION_NUMBER < 0x30000000L
cipher = EVP_get_cipherbyname(name);
#else
cipher = EVP_CIPHER_fetch(NULL, name, NULL);
#endif
if (cipher == NULL) {
Tcl_AppendResult(interp, "invalid cipher \"", name, "\"", (char *) NULL);
|
︙ | | |
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
+
|
*-------------------------------------------------------------------
*/
EVP_MD *Util_GetDigest(Tcl_Interp *interp, Tcl_Obj *digestObj, int no_null) {
EVP_MD *md = NULL;
char *name = NULL;
if (digestObj != NULL) {
name = Tcl_GetStringFromObj(digestObj, NULL);
name = Tcl_GetStringFromObj(digestObj, (Tcl_Size *) NULL);
#if OPENSSL_VERSION_NUMBER < 0x30000000L
md = EVP_get_digestbyname(name);
#else
md = EVP_MD_fetch(NULL, name, NULL);
#endif
if (md == NULL) {
Tcl_AppendResult(interp, "invalid digest \"", name, "\"", (char *) NULL);
|
︙ | | |
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
-
+
+
-
+
+
|
* Pointer to type or NULL, and size
*
* Side effects:
* None
*
*-------------------------------------------------------------------
*/
unsigned char *Util_GetIV(Tcl_Interp *interp, Tcl_Obj *ivObj, int *len, int max, int no_null) {
unsigned char *Util_GetIV(Tcl_Interp *interp, Tcl_Obj *ivObj, Tcl_Size *len, int max, int no_null) {
unsigned char *iv = NULL;
*len = 0;
Tcl_Size size = 0;
if (ivObj != NULL) {
iv = Tcl_GetByteArrayFromObj(ivObj, len);
iv = Tcl_GetByteArrayFromObj(ivObj, &size);
*len = (int) size;
} else if (no_null) {
Tcl_AppendResult(interp, "no initialization vector (IV)", (char *) NULL);
return NULL;
}
if (max > 0 && *len > max) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf("IV too long. Must be <= %d bytes", max));
|
︙ | | |
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
-
+
|
* Pointer to type or NULL, and size
*
* Side effects:
* None
*
*-------------------------------------------------------------------
*/
unsigned char *Util_GetKey(Tcl_Interp *interp, Tcl_Obj *keyObj, int *len, char *name, int max, int no_null) {
unsigned char *Util_GetKey(Tcl_Interp *interp, Tcl_Obj *keyObj, Tcl_Size *len, char *name, int max, int no_null) {
unsigned char *key = NULL;
*len = 0;
if (keyObj != NULL) {
key = Tcl_GetByteArrayFromObj(keyObj, len);
} else if (no_null) {
Tcl_AppendResult(interp, "no ", name, (char *) NULL);
|
︙ | | |
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
-
+
|
*/
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
EVP_MAC *Util_GetMAC(Tcl_Interp *interp, Tcl_Obj *MacObj, int no_null) {
EVP_MAC *mac = NULL;
char *name = NULL;
if (MacObj != NULL) {
name = Tcl_GetStringFromObj(MacObj, NULL);
name = Tcl_GetStringFromObj(MacObj, (Tcl_Size *) NULL);
mac = EVP_MAC_fetch(NULL, name, NULL);
if (mac == NULL) {
Tcl_AppendResult(interp, "invalid MAC \"", name, "\"", (char *) NULL);
return NULL;
}
} else if (no_null) {
Tcl_AppendResult(interp, "no MAC", (char *) NULL);
|
︙ | | |
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
-
+
|
* Pointer to type or NULL, and size
*
* Side effects:
* None
*
*-------------------------------------------------------------------
*/
unsigned char *Util_GetSalt(Tcl_Interp *interp, Tcl_Obj *saltObj, int *len, int max, int no_null) {
unsigned char *Util_GetSalt(Tcl_Interp *interp, Tcl_Obj *saltObj, Tcl_Size *len, int max, int no_null) {
unsigned char *salt = NULL;
*len = 0;
if (saltObj != NULL) {
salt = Tcl_GetByteArrayFromObj(saltObj, len);
} else if (no_null) {
Tcl_AppendResult(interp, "no salt", (char *) NULL);
|
︙ | | |
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
|
-
+
+
|
* Pointer to type or NULL, and size
*
* Side effects:
* None
*
*-------------------------------------------------------------------
*/
unsigned char *Util_GetBinaryArray(Tcl_Interp *interp, Tcl_Obj *dataObj, int *len, char *name, int min, int max, int no_null) {
unsigned char *Util_GetBinaryArray(Tcl_Interp *interp, Tcl_Obj *dataObj, Tcl_Size *len,
char *name, Tcl_Size min, Tcl_Size max, int no_null) {
unsigned char *data = NULL;
*len = 0;
if (dataObj != NULL) {
data = Tcl_GetByteArrayFromObj(dataObj, len);
} else if (no_null) {
Tcl_AppendResult(interp, "no ", name, (char *) NULL);
|
︙ | | |