1 /*
2 * Copyright (C) 2023-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "openssl_adapter.h"
17 #include <openssl/param_build.h>
18 #include "log.h"
19 #include "result.h"
20
21 ASN1_SEQUENCE(Sm2CipherText) = {
22 ASN1_SIMPLE(Sm2CipherText, c1X, BIGNUM),
23 ASN1_SIMPLE(Sm2CipherText, c1Y, BIGNUM),
24 ASN1_SIMPLE(Sm2CipherText, c3, ASN1_OCTET_STRING),
25 ASN1_SIMPLE(Sm2CipherText, c2, ASN1_OCTET_STRING),
26 } ASN1_SEQUENCE_END(Sm2CipherText)
27
28 IMPLEMENT_ASN1_FUNCTIONS(Sm2CipherText)
29
30 BIGNUM *OpensslBnDup(const BIGNUM *a)
31 {
32 return BN_dup(a);
33 }
34
OpensslBnClear(BIGNUM * a)35 void OpensslBnClear(BIGNUM *a)
36 {
37 BN_clear(a);
38 }
39
OpensslBnClearFree(BIGNUM * a)40 void OpensslBnClearFree(BIGNUM *a)
41 {
42 BN_clear_free(a);
43 }
44
OpensslBnNew(void)45 BIGNUM *OpensslBnNew(void)
46 {
47 return BN_new();
48 }
49
OpensslBnFree(BIGNUM * a)50 void OpensslBnFree(BIGNUM *a)
51 {
52 BN_free(a);
53 }
54
OpensslBin2Bn(const unsigned char * s,int len,BIGNUM * ret)55 BIGNUM *OpensslBin2Bn(const unsigned char *s, int len, BIGNUM *ret)
56 {
57 return BN_bin2bn(s, len, ret);
58 }
59
OpensslLeBin2Bn(const unsigned char * s,int len,BIGNUM * ret)60 BIGNUM *OpensslLeBin2Bn(const unsigned char *s, int len, BIGNUM *ret)
61 {
62 return BN_lebin2bn(s, len, ret);
63 }
64
OpensslBn2BinPad(const BIGNUM * a,unsigned char * to,int toLen)65 int OpensslBn2BinPad(const BIGNUM *a, unsigned char *to, int toLen)
66 {
67 return BN_bn2binpad(a, to, toLen);
68 }
69
OpensslBn2LeBinPad(const BIGNUM * a,unsigned char * to,int toLen)70 int OpensslBn2LeBinPad(const BIGNUM *a, unsigned char *to, int toLen)
71 {
72 return BN_bn2lebinpad(a, to, toLen);
73 }
74
OpensslBnCtxNew(void)75 BN_CTX *OpensslBnCtxNew(void)
76 {
77 return BN_CTX_new();
78 }
79
OpensslBnCtxFree(BN_CTX * ctx)80 void OpensslBnCtxFree(BN_CTX *ctx)
81 {
82 BN_CTX_free(ctx);
83 }
84
OpensslBnNumBytes(const BIGNUM * a)85 int OpensslBnNumBytes(const BIGNUM *a)
86 {
87 return BN_num_bytes(a);
88 }
89
OpensslBnSetWord(BIGNUM * a,unsigned int w)90 int OpensslBnSetWord(BIGNUM *a, unsigned int w)
91 {
92 return BN_set_word(a, w);
93 }
94
OpensslBnGetWord(const BIGNUM * a)95 unsigned int OpensslBnGetWord(const BIGNUM *a)
96 {
97 return BN_get_word(a);
98 }
99
OpensslBnNumBits(const BIGNUM * a)100 int OpensslBnNumBits(const BIGNUM *a)
101 {
102 return BN_num_bits(a);
103 }
104
OpensslHex2Bn(BIGNUM ** a,const char * str)105 int OpensslHex2Bn(BIGNUM **a, const char *str)
106 {
107 return BN_hex2bn(a, str);
108 }
109
OpensslBnCmp(const BIGNUM * a,const BIGNUM * b)110 int OpensslBnCmp(const BIGNUM *a, const BIGNUM *b)
111 {
112 return BN_cmp(a, b);
113 }
114
OpensslEcKeyNewByCurveName(int nid)115 EC_KEY *OpensslEcKeyNewByCurveName(int nid)
116 {
117 return EC_KEY_new_by_curve_name(nid);
118 }
119
OpensslEcPointDup(const EC_POINT * src,const EC_GROUP * group)120 EC_POINT *OpensslEcPointDup(const EC_POINT *src, const EC_GROUP *group)
121 {
122 return EC_POINT_dup(src, group);
123 }
124
OpensslEcKeyGenerateKey(EC_KEY * ecKey)125 int OpensslEcKeyGenerateKey(EC_KEY *ecKey)
126 {
127 return EC_KEY_generate_key(ecKey);
128 }
129
OpensslEcKeySetPublicKey(EC_KEY * key,const EC_POINT * pub)130 int OpensslEcKeySetPublicKey(EC_KEY *key, const EC_POINT *pub)
131 {
132 return EC_KEY_set_public_key(key, pub);
133 }
134
OpensslEcKeySetPrivateKey(EC_KEY * key,const BIGNUM * privKey)135 int OpensslEcKeySetPrivateKey(EC_KEY *key, const BIGNUM *privKey)
136 {
137 return EC_KEY_set_private_key(key, privKey);
138 }
139
OpensslEcKeyCheckKey(const EC_KEY * key)140 int OpensslEcKeyCheckKey(const EC_KEY *key)
141 {
142 return EC_KEY_check_key(key);
143 }
144
OpensslEcKeyGet0PublicKey(const EC_KEY * key)145 const EC_POINT *OpensslEcKeyGet0PublicKey(const EC_KEY *key)
146 {
147 return EC_KEY_get0_public_key(key);
148 }
149
OpensslEcKeyGet0PrivateKey(const EC_KEY * key)150 const BIGNUM *OpensslEcKeyGet0PrivateKey(const EC_KEY *key)
151 {
152 return EC_KEY_get0_private_key(key);
153 }
154
OpensslEcKeyGet0Group(const EC_KEY * key)155 const EC_GROUP *OpensslEcKeyGet0Group(const EC_KEY *key)
156 {
157 return EC_KEY_get0_group(key);
158 }
159
OpensslI2dEcPubKey(EC_KEY * a,unsigned char ** pp)160 int OpensslI2dEcPubKey(EC_KEY *a, unsigned char **pp)
161 {
162 return i2d_EC_PUBKEY(a, pp);
163 }
164
OpensslI2dEcPrivateKey(EC_KEY * key,unsigned char ** out)165 int OpensslI2dEcPrivateKey(EC_KEY *key, unsigned char **out)
166 {
167 return i2d_ECPrivateKey(key, out);
168 }
169
OpensslD2iEcPubKey(EC_KEY ** a,const unsigned char ** pp,long length)170 EC_KEY *OpensslD2iEcPubKey(EC_KEY **a, const unsigned char **pp, long length)
171 {
172 return d2i_EC_PUBKEY(a, pp, length);
173 }
174
OpensslD2iEcPrivateKey(EC_KEY ** key,const unsigned char ** in,long len)175 EC_KEY *OpensslD2iEcPrivateKey(EC_KEY **key, const unsigned char **in, long len)
176 {
177 return d2i_ECPrivateKey(key, in, len);
178 }
179
OpensslEcKeySetAsn1Flag(EC_KEY * key,int flag)180 void OpensslEcKeySetAsn1Flag(EC_KEY *key, int flag)
181 {
182 EC_KEY_set_asn1_flag(key, flag);
183 }
184
OpensslEcKeySetEncFlags(EC_KEY * ecKey,unsigned int flags)185 void OpensslEcKeySetEncFlags(EC_KEY *ecKey, unsigned int flags)
186 {
187 EC_KEY_set_enc_flags(ecKey, flags);
188 }
189
OpensslEcKeyFree(EC_KEY * key)190 void OpensslEcKeyFree(EC_KEY *key)
191 {
192 EC_KEY_free(key);
193 }
194
OpensslEcPointFree(EC_POINT * point)195 void OpensslEcPointFree(EC_POINT *point)
196 {
197 EC_POINT_free(point);
198 }
199
OpensslEcGroupNewCurveGfp(const BIGNUM * p,const BIGNUM * a,const BIGNUM * b,BN_CTX * ctx)200 EC_GROUP *OpensslEcGroupNewCurveGfp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
201 {
202 return EC_GROUP_new_curve_GFp(p, a, b, ctx);
203 }
204
OpensslEcGroupFree(EC_GROUP * group)205 void OpensslEcGroupFree(EC_GROUP *group)
206 {
207 EC_GROUP_free(group);
208 }
209
OpensslEcPointNew(const EC_GROUP * group)210 EC_POINT *OpensslEcPointNew(const EC_GROUP *group)
211 {
212 return EC_POINT_new(group);
213 }
214
OpensslEcPointCopy(EC_POINT * dst,const EC_POINT * src)215 int OpensslEcPointCopy(EC_POINT *dst, const EC_POINT *src)
216 {
217 return EC_POINT_copy(dst, src);
218 }
219
OpensslEcPointSetAffineCoordinatesGfp(const EC_GROUP * group,EC_POINT * point,const BIGNUM * x,const BIGNUM * y,BN_CTX * ctx)220 int OpensslEcPointSetAffineCoordinatesGfp(const EC_GROUP *group, EC_POINT *point, const BIGNUM *x,
221 const BIGNUM *y, BN_CTX *ctx)
222 {
223 return EC_POINT_set_affine_coordinates_GFp(group, point, x, y, ctx);
224 }
225
OpensslEcGroupSetGenerator(EC_GROUP * group,const EC_POINT * generator,const BIGNUM * order,const BIGNUM * cofactor)226 int OpensslEcGroupSetGenerator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order,
227 const BIGNUM *cofactor)
228 {
229 return EC_GROUP_set_generator(group, generator, order, cofactor);
230 }
231
OpensslEcKeyNew(void)232 EC_KEY *OpensslEcKeyNew(void)
233 {
234 return EC_KEY_new();
235 }
236
OpensslEcKeyDup(const EC_KEY * ecKey)237 EC_KEY *OpensslEcKeyDup(const EC_KEY *ecKey)
238 {
239 return EC_KEY_dup(ecKey);
240 }
241
OpensslEcKeySetGroup(EC_KEY * key,const EC_GROUP * group)242 int OpensslEcKeySetGroup(EC_KEY *key, const EC_GROUP *group)
243 {
244 return EC_KEY_set_group(key, group);
245 }
246
OpensslEcGroupGetCurveGfp(const EC_GROUP * group,BIGNUM * p,BIGNUM * a,BIGNUM * b,BN_CTX * ctx)247 int OpensslEcGroupGetCurveGfp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
248 {
249 return EC_GROUP_get_curve_GFp(group, p, a, b, ctx);
250 }
251
OpensslEcGroupGet0Generator(const EC_GROUP * group)252 const EC_POINT *OpensslEcGroupGet0Generator(const EC_GROUP *group)
253 {
254 return EC_GROUP_get0_generator(group);
255 }
256
OpensslEcPointGetAffineCoordinatesGfp(const EC_GROUP * group,const EC_POINT * point,BIGNUM * x,BIGNUM * y,BN_CTX * ctx)257 int OpensslEcPointGetAffineCoordinatesGfp(const EC_GROUP *group, const EC_POINT *point, BIGNUM *x,
258 BIGNUM *y, BN_CTX *ctx)
259 {
260 return EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx);
261 }
262
OpensslEcGroupGetOrder(const EC_GROUP * group,BIGNUM * order,BN_CTX * ctx)263 int OpensslEcGroupGetOrder(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx)
264 {
265 return EC_GROUP_get_order(group, order, ctx);
266 }
267
OpensslEcGroupGetCofactor(const EC_GROUP * group,BIGNUM * cofactor,BN_CTX * ctx)268 int OpensslEcGroupGetCofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx)
269 {
270 return EC_GROUP_get_cofactor(group, cofactor, ctx);
271 }
272
OpensslEcGroupGetDegree(const EC_GROUP * group)273 int OpensslEcGroupGetDegree(const EC_GROUP *group)
274 {
275 return EC_GROUP_get_degree(group);
276 }
277
OpensslEcGroupDup(const EC_GROUP * a)278 EC_GROUP *OpensslEcGroupDup(const EC_GROUP *a)
279 {
280 return EC_GROUP_dup(a);
281 }
282
OpensslEcGroupSetCurveName(EC_GROUP * group,int nid)283 void OpensslEcGroupSetCurveName(EC_GROUP *group, int nid)
284 {
285 EC_GROUP_set_curve_name(group, nid);
286 }
287
OpensslEcGroupGetCurveName(const EC_GROUP * group)288 int OpensslEcGroupGetCurveName(const EC_GROUP *group)
289 {
290 return EC_GROUP_get_curve_name(group);
291 }
292
OpensslEcPointMul(const EC_GROUP * group,EC_POINT * r,const BIGNUM * gScalar,const EC_POINT * point,const BIGNUM * pScalar,BN_CTX * ctx)293 int OpensslEcPointMul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *gScalar, const EC_POINT *point,
294 const BIGNUM *pScalar, BN_CTX *ctx)
295 {
296 return EC_POINT_mul(group, r, gScalar, point, pScalar, ctx);
297 }
298
OpensslEvpMdCtxNew(void)299 EVP_MD_CTX *OpensslEvpMdCtxNew(void)
300 {
301 return EVP_MD_CTX_new();
302 }
303
OpensslEvpMdCtxFree(EVP_MD_CTX * ctx)304 void OpensslEvpMdCtxFree(EVP_MD_CTX *ctx)
305 {
306 EVP_MD_CTX_free(ctx);
307 }
308
OpensslEvpMdCtxSetPkeyCtx(EVP_MD_CTX * ctx,EVP_PKEY_CTX * pctx)309 void OpensslEvpMdCtxSetPkeyCtx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx)
310 {
311 EVP_MD_CTX_set_pkey_ctx(ctx, pctx);
312 }
313
OpensslEvpMdCtxGetPkeyCtx(EVP_MD_CTX * ctx)314 EVP_PKEY_CTX *OpensslEvpMdCtxGetPkeyCtx(EVP_MD_CTX *ctx)
315 {
316 return EVP_MD_CTX_get_pkey_ctx(ctx);
317 }
318
OpensslEvpDigestSignInit(EVP_MD_CTX * ctx,EVP_PKEY_CTX ** pctx,const EVP_MD * type,ENGINE * e,EVP_PKEY * pkey)319 int OpensslEvpDigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)
320 {
321 return EVP_DigestSignInit(ctx, pctx, type, e, pkey);
322 }
323
OpensslEvpDigestSignUpdate(EVP_MD_CTX * ctx,const void * data,size_t count)324 int OpensslEvpDigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
325 {
326 return EVP_DigestSignUpdate(ctx, data, count);
327 }
328
OpensslEvpDigestSignFinal(EVP_MD_CTX * ctx,unsigned char * sigret,size_t * siglen)329 int OpensslEvpDigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen)
330 {
331 return EVP_DigestSignFinal(ctx, sigret, siglen);
332 }
333
OpensslEvpDigestSign(EVP_MD_CTX * ctx,unsigned char * sig,size_t * siglen,const unsigned char * tbs,size_t tbslen)334 int OpensslEvpDigestSign(EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, const unsigned char *tbs, size_t tbslen)
335 {
336 return EVP_DigestSign(ctx, sig, siglen, tbs, tbslen);
337 }
338
OpensslEvpDigestVerifyInit(EVP_MD_CTX * ctx,EVP_PKEY_CTX ** pctx,const EVP_MD * type,ENGINE * e,EVP_PKEY * pkey)339 int OpensslEvpDigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey)
340 {
341 return EVP_DigestVerifyInit(ctx, pctx, type, e, pkey);
342 }
343
OpensslEvpDigestVerifyUpdate(EVP_MD_CTX * ctx,const void * data,size_t count)344 int OpensslEvpDigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
345 {
346 return EVP_DigestVerifyUpdate(ctx, data, count);
347 }
348
OpensslEvpDigestVerifyFinal(EVP_MD_CTX * ctx,const unsigned char * sig,size_t siglen)349 int OpensslEvpDigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen)
350 {
351 return EVP_DigestVerifyFinal(ctx, sig, siglen);
352 }
353
OpensslEvpDigestVerify(EVP_MD_CTX * ctx,unsigned char * sig,size_t siglen,const unsigned char * tbs,size_t tbslen)354 int OpensslEvpDigestVerify(EVP_MD_CTX *ctx, unsigned char *sig, size_t siglen,
355 const unsigned char *tbs, size_t tbslen)
356 {
357 return EVP_DigestVerify(ctx, sig, siglen, tbs, tbslen);
358 }
359
OpensslEvpPkeySignInit(EVP_PKEY_CTX * ctx)360 int OpensslEvpPkeySignInit(EVP_PKEY_CTX *ctx)
361 {
362 return EVP_PKEY_sign_init(ctx);
363 }
364
OpensslEvpPkeySign(EVP_PKEY_CTX * ctx,unsigned char * sig,size_t * siglen,const unsigned char * tbs,size_t tbslen)365 int OpensslEvpPkeySign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, const unsigned char *tbs,
366 size_t tbslen)
367 {
368 return EVP_PKEY_sign(ctx, sig, siglen, tbs, tbslen);
369 }
370
OpensslEvpPkeyVerifyInit(EVP_PKEY_CTX * ctx)371 int OpensslEvpPkeyVerifyInit(EVP_PKEY_CTX *ctx)
372 {
373 return EVP_PKEY_verify_init(ctx);
374 }
375
OpensslEvpPkeyVerify(EVP_PKEY_CTX * ctx,const unsigned char * sig,size_t siglen,const unsigned char * tbs,size_t tbslen)376 int OpensslEvpPkeyVerify(EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen, const unsigned char *tbs,
377 size_t tbslen)
378 {
379 return EVP_PKEY_verify(ctx, sig, siglen, tbs, tbslen);
380 }
381
OpensslEvpPkeyCtxNewFromPkey(OSSL_LIB_CTX * libctx,EVP_PKEY * pkey,const char * propquery)382 EVP_PKEY_CTX *OpensslEvpPkeyCtxNewFromPkey(OSSL_LIB_CTX *libctx,
383 EVP_PKEY *pkey, const char *propquery)
384 {
385 return EVP_PKEY_CTX_new_from_pkey(libctx, pkey, propquery);
386 }
387
OpensslEvpPkeyNew(void)388 EVP_PKEY *OpensslEvpPkeyNew(void)
389 {
390 return EVP_PKEY_new();
391 }
392
OpensslEvpPkeyNewRawPublicKey(int type,ENGINE * e,const unsigned char * pub,size_t len)393 EVP_PKEY *OpensslEvpPkeyNewRawPublicKey(int type, ENGINE *e, const unsigned char *pub, size_t len)
394 {
395 return EVP_PKEY_new_raw_public_key(type, e, pub, len);
396 }
397
OpensslEvpPkeyNewRawPrivateKey(int type,ENGINE * e,const unsigned char * pub,size_t len)398 EVP_PKEY *OpensslEvpPkeyNewRawPrivateKey(int type, ENGINE *e, const unsigned char *pub, size_t len)
399 {
400 return EVP_PKEY_new_raw_private_key(type, e, pub, len);
401 }
402
OpensslEvpPkeyGetRawPublicKey(const EVP_PKEY * pkey,unsigned char * pub,size_t * len)403 int OpensslEvpPkeyGetRawPublicKey(const EVP_PKEY *pkey, unsigned char *pub, size_t *len)
404 {
405 return EVP_PKEY_get_raw_public_key(pkey, pub, len);
406 }
407
OpensslEvpPkeyGetRawPrivateKey(const EVP_PKEY * pkey,unsigned char * priv,size_t * len)408 int OpensslEvpPkeyGetRawPrivateKey(const EVP_PKEY *pkey, unsigned char *priv, size_t *len)
409 {
410 return EVP_PKEY_get_raw_private_key(pkey, priv, len);
411 }
412
OpensslEvpPkeyAssignEcKey(EVP_PKEY * pkey,EC_KEY * key)413 int OpensslEvpPkeyAssignEcKey(EVP_PKEY *pkey, EC_KEY *key)
414 {
415 return EVP_PKEY_assign_EC_KEY(pkey, key);
416 }
417
OpensslEvpPkeySet1EcKey(EVP_PKEY * pkey,EC_KEY * key)418 int OpensslEvpPkeySet1EcKey(EVP_PKEY *pkey, EC_KEY *key)
419 {
420 return EVP_PKEY_set1_EC_KEY(pkey, key);
421 }
422
OpensslEvpPkeyFree(EVP_PKEY * pkey)423 void OpensslEvpPkeyFree(EVP_PKEY *pkey)
424 {
425 EVP_PKEY_free(pkey);
426 }
427
OpensslEvpPkeyCtxNew(EVP_PKEY * pkey,ENGINE * e)428 EVP_PKEY_CTX *OpensslEvpPkeyCtxNew(EVP_PKEY *pkey, ENGINE *e)
429 {
430 return EVP_PKEY_CTX_new(pkey, e);
431 }
432
OpensslEvpPkeyDeriveInit(EVP_PKEY_CTX * ctx)433 int OpensslEvpPkeyDeriveInit(EVP_PKEY_CTX *ctx)
434 {
435 return EVP_PKEY_derive_init(ctx);
436 }
437
OpensslEvpPkeyDeriveSetPeer(EVP_PKEY_CTX * ctx,EVP_PKEY * peer)438 int OpensslEvpPkeyDeriveSetPeer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
439 {
440 return EVP_PKEY_derive_set_peer(ctx, peer);
441 }
442
OpensslEvpPkeyDerive(EVP_PKEY_CTX * ctx,unsigned char * key,size_t * keylen)443 int OpensslEvpPkeyDerive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen)
444 {
445 return EVP_PKEY_derive(ctx, key, keylen);
446 }
447
OpensslEvpPkeyCtxFree(EVP_PKEY_CTX * ctx)448 void OpensslEvpPkeyCtxFree(EVP_PKEY_CTX *ctx)
449 {
450 EVP_PKEY_CTX_free(ctx);
451 }
452
OpensslEvpPkeyEncrypt(EVP_PKEY_CTX * ctx,unsigned char * out,size_t * outlen,const unsigned char * in,size_t inlen)453 int OpensslEvpPkeyEncrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
454 const unsigned char *in, size_t inlen)
455 {
456 return EVP_PKEY_encrypt(ctx, out, outlen, in, inlen);
457 }
458
OpensslEvpPkeyDecrypt(EVP_PKEY_CTX * ctx,unsigned char * out,size_t * outlen,const unsigned char * in,size_t inlen)459 int OpensslEvpPkeyDecrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
460 const unsigned char *in, size_t inlen)
461 {
462 return EVP_PKEY_decrypt(ctx, out, outlen, in, inlen);
463 }
464
OpensslEvpPkeyEncryptInit(EVP_PKEY_CTX * ctx)465 int OpensslEvpPkeyEncryptInit(EVP_PKEY_CTX *ctx)
466 {
467 return EVP_PKEY_encrypt_init(ctx);
468 }
469
OpensslEvpPkeyDecryptInit(EVP_PKEY_CTX * ctx)470 int OpensslEvpPkeyDecryptInit(EVP_PKEY_CTX *ctx)
471 {
472 return EVP_PKEY_decrypt_init(ctx);
473 }
474
OpensslEvpPkeyCtxNewId(int id,ENGINE * e)475 EVP_PKEY_CTX *OpensslEvpPkeyCtxNewId(int id, ENGINE *e)
476 {
477 return EVP_PKEY_CTX_new_id(id, e);
478 }
479
OpensslEvpPkeyBaseId(EVP_PKEY * pkey)480 int OpensslEvpPkeyBaseId(EVP_PKEY *pkey)
481 {
482 return EVP_PKEY_base_id(pkey);
483 }
484
OpensslEvpPkeyCtxNewFromName(OSSL_LIB_CTX * libctx,const char * name,const char * propquery)485 EVP_PKEY_CTX *OpensslEvpPkeyCtxNewFromName(OSSL_LIB_CTX *libctx, const char *name, const char *propquery)
486 {
487 return EVP_PKEY_CTX_new_from_name(libctx, name, propquery);
488 }
489
OpensslEvpPkeyVerifyRecoverInit(EVP_PKEY_CTX * ctx)490 int OpensslEvpPkeyVerifyRecoverInit(EVP_PKEY_CTX *ctx)
491 {
492 return EVP_PKEY_verify_recover_init(ctx);
493 }
494
OpensslEvpPkeyVerifyRecover(EVP_PKEY_CTX * ctx,unsigned char * rout,size_t * routlen,const unsigned char * sig,size_t siglen)495 int OpensslEvpPkeyVerifyRecover(EVP_PKEY_CTX *ctx, unsigned char *rout, size_t *routlen, const unsigned char *sig,
496 size_t siglen)
497 {
498 return EVP_PKEY_verify_recover(ctx, rout, routlen, sig, siglen);
499 }
500
OpensslOsslParamConstructUtf8String(const char * key,char * buf,size_t bsize)501 OSSL_PARAM OpensslOsslParamConstructUtf8String(const char *key, char *buf, size_t bsize)
502 {
503 return OSSL_PARAM_construct_utf8_string(key, buf, bsize);
504 }
505
OpensslOsslParamConstructOctetString(const char * key,void * buf,size_t bsize)506 OSSL_PARAM OpensslOsslParamConstructOctetString(const char *key, void *buf, size_t bsize)
507 {
508 return OSSL_PARAM_construct_octet_string(key, buf, bsize);
509 }
510
OpensslOsslParamConstructEnd(void)511 OSSL_PARAM OpensslOsslParamConstructEnd(void)
512 {
513 return OSSL_PARAM_construct_end();
514 }
515
OpensslEvpPkeyGenerate(EVP_PKEY_CTX * ctx,EVP_PKEY ** ppkey)516 int OpensslEvpPkeyGenerate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
517 {
518 return EVP_PKEY_generate(ctx, ppkey);
519 }
520
OpensslOsslParamConstructUint(const char * key,unsigned int * buf)521 OSSL_PARAM OpensslOsslParamConstructUint(const char *key, unsigned int *buf)
522 {
523 return OSSL_PARAM_construct_uint(key, buf);
524 }
525
OpensslOsslParamConstructInt(const char * key,int * buf)526 OSSL_PARAM OpensslOsslParamConstructInt(const char *key, int *buf)
527 {
528 return OSSL_PARAM_construct_int(key, buf);
529 }
530
OpensslEvpPkeyCtxSet1Id(EVP_PKEY_CTX * ctx,const void * id,int idLen)531 int OpensslEvpPkeyCtxSet1Id(EVP_PKEY_CTX *ctx, const void *id, int idLen)
532 {
533 return EVP_PKEY_CTX_set1_id(ctx, id, idLen);
534 }
535
OpensslEvpPkeyParamGenInit(EVP_PKEY_CTX * ctx)536 int OpensslEvpPkeyParamGenInit(EVP_PKEY_CTX *ctx)
537 {
538 return EVP_PKEY_paramgen_init(ctx);
539 }
540
OpensslEvpPkeyCtxSetDsaParamgenBits(EVP_PKEY_CTX * ctx,int nbits)541 int OpensslEvpPkeyCtxSetDsaParamgenBits(EVP_PKEY_CTX *ctx, int nbits)
542 {
543 return EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits);
544 }
545
OpensslEvpPkeyCtxSetParams(EVP_PKEY_CTX * ctx,const OSSL_PARAM * params)546 int OpensslEvpPkeyCtxSetParams(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params)
547 {
548 return EVP_PKEY_CTX_set_params(ctx, params);
549 }
550
OpensslEvpPkeyParamGen(EVP_PKEY_CTX * ctx,EVP_PKEY ** ppkey)551 int OpensslEvpPkeyParamGen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
552 {
553 return EVP_PKEY_paramgen(ctx, ppkey);
554 }
555
OpensslEvpPkeyKeyGenInit(EVP_PKEY_CTX * ctx)556 int OpensslEvpPkeyKeyGenInit(EVP_PKEY_CTX *ctx)
557 {
558 return EVP_PKEY_keygen_init(ctx);
559 }
560
OpensslEvpPkeyKeyGen(EVP_PKEY_CTX * ctx,EVP_PKEY ** ppkey)561 int OpensslEvpPkeyKeyGen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey)
562 {
563 return EVP_PKEY_keygen(ctx, ppkey);
564 }
565
OpensslEvpPkeySet1Dsa(EVP_PKEY * pkey,DSA * key)566 int OpensslEvpPkeySet1Dsa(EVP_PKEY *pkey, DSA *key)
567 {
568 return EVP_PKEY_set1_DSA(pkey, key);
569 }
570
OpensslEvpPkeyGet1Dsa(EVP_PKEY * pkey)571 DSA *OpensslEvpPkeyGet1Dsa(EVP_PKEY *pkey)
572 {
573 return EVP_PKEY_get1_DSA(pkey);
574 }
575
OpensslDsaNew(void)576 DSA *OpensslDsaNew(void)
577 {
578 return DSA_new();
579 }
580
OpensslDsaFree(DSA * dsa)581 void OpensslDsaFree(DSA *dsa)
582 {
583 DSA_free(dsa);
584 }
585
OpensslDsaUpRef(DSA * dsa)586 int OpensslDsaUpRef(DSA *dsa)
587 {
588 return DSA_up_ref(dsa);
589 }
590
OpensslDsaSet0Pqg(DSA * dsa,BIGNUM * p,BIGNUM * q,BIGNUM * g)591 int OpensslDsaSet0Pqg(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g)
592 {
593 return DSA_set0_pqg(dsa, p, q, g);
594 }
595
OpensslDsaSet0Key(DSA * dsa,BIGNUM * pubKey,BIGNUM * priKey)596 int OpensslDsaSet0Key(DSA *dsa, BIGNUM *pubKey, BIGNUM *priKey)
597 {
598 return DSA_set0_key(dsa, pubKey, priKey);
599 }
600
OpensslDsaGet0P(const DSA * dsa)601 const BIGNUM *OpensslDsaGet0P(const DSA *dsa)
602 {
603 return DSA_get0_p(dsa);
604 }
605
OpensslDsaGet0Q(const DSA * dsa)606 const BIGNUM *OpensslDsaGet0Q(const DSA *dsa)
607 {
608 return DSA_get0_q(dsa);
609 }
610
OpensslDsaGet0G(const DSA * dsa)611 const BIGNUM *OpensslDsaGet0G(const DSA *dsa)
612 {
613 return DSA_get0_g(dsa);
614 }
615
OpensslDsaGet0PubKey(const DSA * dsa)616 const BIGNUM *OpensslDsaGet0PubKey(const DSA *dsa)
617 {
618 return DSA_get0_pub_key(dsa);
619 }
620
OpensslDsaGet0PrivKey(const DSA * dsa)621 const BIGNUM *OpensslDsaGet0PrivKey(const DSA *dsa)
622 {
623 return DSA_get0_priv_key(dsa);
624 }
625
OpensslDsaGenerateKey(DSA * a)626 int OpensslDsaGenerateKey(DSA *a)
627 {
628 return DSA_generate_key(a);
629 }
630
OpensslD2iDsaPubKey(DSA ** dsa,const unsigned char ** ppin,long length)631 DSA *OpensslD2iDsaPubKey(DSA **dsa, const unsigned char **ppin, long length)
632 {
633 return d2i_DSA_PUBKEY(dsa, ppin, length);
634 }
635
OpensslD2iDsaPrivateKey(DSA ** dsa,const unsigned char ** ppin,long length)636 DSA *OpensslD2iDsaPrivateKey(DSA **dsa, const unsigned char **ppin, long length)
637 {
638 return d2i_DSAPrivateKey(dsa, ppin, length);
639 }
640
OpensslI2dDsaPubkey(DSA * dsa,unsigned char ** ppout)641 int OpensslI2dDsaPubkey(DSA *dsa, unsigned char **ppout)
642 {
643 return i2d_DSA_PUBKEY(dsa, ppout);
644 }
645
OpensslI2dDsaPrivateKey(DSA * dsa,unsigned char ** ppout)646 int OpensslI2dDsaPrivateKey(DSA *dsa, unsigned char **ppout)
647 {
648 return i2d_DSAPrivateKey(dsa, ppout);
649 }
650
OpensslEvpPkeyCheck(EVP_PKEY_CTX * ctx)651 int OpensslEvpPkeyCheck(EVP_PKEY_CTX *ctx)
652 {
653 return EVP_PKEY_check(ctx);
654 }
655
OpensslEvpPkeyDup(EVP_PKEY * a)656 EVP_PKEY *OpensslEvpPkeyDup(EVP_PKEY *a)
657 {
658 return EVP_PKEY_dup(a);
659 }
660
OpensslD2iPubKey(EVP_PKEY ** a,const unsigned char ** pp,long length)661 EVP_PKEY *OpensslD2iPubKey(EVP_PKEY **a, const unsigned char **pp, long length)
662 {
663 return d2i_PUBKEY(a, pp, length);
664 }
665
OpensslD2iPrivateKey(int type,EVP_PKEY ** a,const unsigned char ** pp,long length)666 EVP_PKEY *OpensslD2iPrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, long length)
667 {
668 return d2i_PrivateKey(type, a, pp, length);
669 }
670
OpensslI2dPubKey(EVP_PKEY * pkey,unsigned char ** ppout)671 int OpensslI2dPubKey(EVP_PKEY *pkey, unsigned char **ppout)
672 {
673 return i2d_PUBKEY(pkey, ppout);
674 }
675
OpensslI2dPrivateKey(EVP_PKEY * pkey,unsigned char ** ppout)676 int OpensslI2dPrivateKey(EVP_PKEY *pkey, unsigned char **ppout)
677 {
678 return i2d_PrivateKey(pkey, ppout);
679 }
680
OpensslRsaNew(void)681 RSA *OpensslRsaNew(void)
682 {
683 return RSA_new();
684 }
685
OpensslRsaFree(RSA * rsa)686 void OpensslRsaFree(RSA *rsa)
687 {
688 RSA_free(rsa);
689 }
690
OpensslRsaGenerateMultiPrimeKey(RSA * rsa,int bits,int primes,BIGNUM * e,BN_GENCB * cb)691 int OpensslRsaGenerateMultiPrimeKey(RSA *rsa, int bits, int primes,
692 BIGNUM *e, BN_GENCB *cb)
693 {
694 return RSA_generate_multi_prime_key(rsa, bits, primes, e, cb);
695 }
696
OpensslRsaGenerateKeyEx(RSA * rsa,int bits,BIGNUM * e,BN_GENCB * cb)697 int OpensslRsaGenerateKeyEx(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb)
698 {
699 return RSA_generate_key_ex(rsa, bits, e, cb);
700 }
701
OpensslRsaBits(const RSA * rsa)702 int OpensslRsaBits(const RSA *rsa)
703 {
704 return RSA_bits(rsa);
705 }
706
OpensslRsaSet0Key(RSA * r,BIGNUM * n,BIGNUM * e,BIGNUM * d)707 int OpensslRsaSet0Key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
708 {
709 return RSA_set0_key(r, n, e, d);
710 }
711
OpensslRsaGet0Key(const RSA * r,const BIGNUM ** n,const BIGNUM ** e,const BIGNUM ** d)712 void OpensslRsaGet0Key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
713 {
714 RSA_get0_key(r, n, e, d);
715 }
716
OpensslRsaGet0N(const RSA * d)717 const BIGNUM *OpensslRsaGet0N(const RSA *d)
718 {
719 return RSA_get0_n(d);
720 }
721
OpensslRsaGet0E(const RSA * d)722 const BIGNUM *OpensslRsaGet0E(const RSA *d)
723 {
724 return RSA_get0_e(d);
725 }
726
OpensslRsaGet0D(const RSA * d)727 const BIGNUM *OpensslRsaGet0D(const RSA *d)
728 {
729 return RSA_get0_d(d);
730 }
731
OpensslRsaGet0Factors(const RSA * r,const BIGNUM ** p,const BIGNUM ** q)732 void OpensslRsaGet0Factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
733 {
734 RSA_get0_factors(r, p, q);
735 }
736
OpensslRsaPublicKeyDup(RSA * rsa)737 RSA *OpensslRsaPublicKeyDup(RSA *rsa)
738 {
739 return RSAPublicKey_dup(rsa);
740 }
741
OpensslRsaPrivateKeyDup(RSA * rsa)742 RSA *OpensslRsaPrivateKeyDup(RSA *rsa)
743 {
744 return RSAPrivateKey_dup(rsa);
745 }
746
OpensslD2iRsaPubKey(RSA ** a,const unsigned char ** pp,long length)747 RSA *OpensslD2iRsaPubKey(RSA **a, const unsigned char **pp, long length)
748 {
749 return d2i_RSA_PUBKEY(a, pp, length);
750 }
751
OpensslI2dRsaPubKey(RSA * a,unsigned char ** pp)752 int OpensslI2dRsaPubKey(RSA *a, unsigned char **pp)
753 {
754 return i2d_RSA_PUBKEY(a, pp);
755 }
756
OpensslEvpPkeyCtxSetRsaPssSaltLen(EVP_PKEY_CTX * ctx,int saltlen)757 int OpensslEvpPkeyCtxSetRsaPssSaltLen(EVP_PKEY_CTX *ctx, int saltlen)
758 {
759 return EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, saltlen);
760 }
761
OpensslEvpPkeyCtxGetRsaPssSaltLen(EVP_PKEY_CTX * ctx,int * saltlen)762 int OpensslEvpPkeyCtxGetRsaPssSaltLen(EVP_PKEY_CTX *ctx, int *saltlen)
763 {
764 return EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, saltlen);
765 }
766
OpensslEvpPkeyCtxSetRsaPadding(EVP_PKEY_CTX * ctx,int pad)767 int OpensslEvpPkeyCtxSetRsaPadding(EVP_PKEY_CTX *ctx, int pad)
768 {
769 return EVP_PKEY_CTX_set_rsa_padding(ctx, pad);
770 }
771
OpensslEvpPkeyCtxSetRsaMgf1Md(EVP_PKEY_CTX * ctx,const EVP_MD * md)772 int OpensslEvpPkeyCtxSetRsaMgf1Md(EVP_PKEY_CTX *ctx, const EVP_MD *md)
773 {
774 return EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md);
775 }
776
OpensslEvpPkeyCtxSetRsaOaepMd(EVP_PKEY_CTX * ctx,const EVP_MD * md)777 int OpensslEvpPkeyCtxSetRsaOaepMd(EVP_PKEY_CTX *ctx, const EVP_MD *md)
778 {
779 return EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md);
780 }
781
OpensslEvpPkeyCtxSet0RsaOaepLabel(EVP_PKEY_CTX * ctx,void * label,int len)782 int OpensslEvpPkeyCtxSet0RsaOaepLabel(EVP_PKEY_CTX *ctx, void *label, int len)
783 {
784 return EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, label, len);
785 }
786
OpensslEvpPkeyCtxGet0RsaOaepLabel(EVP_PKEY_CTX * ctx,unsigned char ** label)787 int OpensslEvpPkeyCtxGet0RsaOaepLabel(EVP_PKEY_CTX *ctx, unsigned char **label)
788 {
789 return EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, label);
790 }
791
OpensslD2iAutoPrivateKey(EVP_PKEY ** a,const unsigned char ** pp,long length)792 EVP_PKEY *OpensslD2iAutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, long length)
793 {
794 return d2i_AutoPrivateKey(a, pp, length);
795 }
796
OpensslEvpPkeyGet1Rsa(EVP_PKEY * pkey)797 struct rsa_st *OpensslEvpPkeyGet1Rsa(EVP_PKEY *pkey)
798 {
799 return EVP_PKEY_get1_RSA(pkey);
800 }
801
OpensslEvpPkeySet1Rsa(EVP_PKEY * pkey,struct rsa_st * key)802 int OpensslEvpPkeySet1Rsa(EVP_PKEY *pkey, struct rsa_st *key)
803 {
804 return EVP_PKEY_set1_RSA(pkey, key);
805 }
806
OpensslEvpPkeyAssignRsa(EVP_PKEY * pkey,struct rsa_st * key)807 int OpensslEvpPkeyAssignRsa(EVP_PKEY *pkey, struct rsa_st *key)
808 {
809 return EVP_PKEY_assign_RSA(pkey, key);
810 }
811
OpensslPemWriteBioRsaPublicKey(BIO * bp,RSA * x)812 int OpensslPemWriteBioRsaPublicKey(BIO *bp, RSA *x)
813 {
814 return PEM_write_bio_RSAPublicKey(bp, x);
815 }
816
OpensslPemWriteBioRsaPubKey(BIO * bp,RSA * x)817 int OpensslPemWriteBioRsaPubKey(BIO *bp, RSA *x)
818 {
819 return PEM_write_bio_RSA_PUBKEY(bp, x);
820 }
821
OpensslBioNew(const BIO_METHOD * type)822 BIO *OpensslBioNew(const BIO_METHOD *type)
823 {
824 return BIO_new(type);
825 }
826
OpensslBioSMem(void)827 const BIO_METHOD *OpensslBioSMem(void)
828 {
829 return BIO_s_mem();
830 }
831
OpensslBioRead(BIO * b,void * data,int dlen)832 int OpensslBioRead(BIO *b, void *data, int dlen)
833 {
834 return BIO_read(b, data, dlen);
835 }
836
OpensslBioFreeAll(BIO * a)837 void OpensslBioFreeAll(BIO *a)
838 {
839 BIO_free_all(a);
840 }
841
OpensslRandPrivBytes(unsigned char * buf,int num)842 int OpensslRandPrivBytes(unsigned char *buf, int num)
843 {
844 return RAND_priv_bytes(buf, num);
845 }
846
OpensslRandSeed(const void * buf,int num)847 void OpensslRandSeed(const void *buf, int num)
848 {
849 RAND_seed(buf, num);
850 }
851
OpensslEvpSha1(void)852 const EVP_MD *OpensslEvpSha1(void)
853 {
854 return EVP_sha1();
855 }
856
OpensslEvpSha224(void)857 const EVP_MD *OpensslEvpSha224(void)
858 {
859 return EVP_sha224();
860 }
861
OpensslEvpSha256(void)862 const EVP_MD *OpensslEvpSha256(void)
863 {
864 return EVP_sha256();
865 }
866
OpensslEvpSha384(void)867 const EVP_MD *OpensslEvpSha384(void)
868 {
869 return EVP_sha384();
870 }
871
OpensslEvpSha512(void)872 const EVP_MD *OpensslEvpSha512(void)
873 {
874 return EVP_sha512();
875 }
876
OpensslEvpMd5(void)877 const EVP_MD *OpensslEvpMd5(void)
878 {
879 return EVP_md5();
880 }
881
OpensslEvpSm3(void)882 const EVP_MD *OpensslEvpSm3(void)
883 {
884 return EVP_sm3();
885 }
886
OpensslEvpDigestFinalEx(EVP_MD_CTX * ctx,unsigned char * md,unsigned int * size)887 int OpensslEvpDigestFinalEx(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size)
888 {
889 return EVP_DigestFinal_ex(ctx, md, size);
890 }
891
OpensslEvpMdCtxSize(const EVP_MD_CTX * ctx)892 int OpensslEvpMdCtxSize(const EVP_MD_CTX *ctx)
893 {
894 return EVP_MD_CTX_size(ctx);
895 }
896
OpensslEvpDigestInitEx(EVP_MD_CTX * ctx,const EVP_MD * type,ENGINE * impl)897 int OpensslEvpDigestInitEx(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
898 {
899 return EVP_DigestInit_ex(ctx, type, impl);
900 }
901
OpensslHmacInitEx(HMAC_CTX * ctx,const void * key,int len,const EVP_MD * md,ENGINE * impl)902 int OpensslHmacInitEx(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md, ENGINE *impl)
903 {
904 return HMAC_Init_ex(ctx, key, len, md, impl);
905 }
906
OpensslHmacFinal(HMAC_CTX * ctx,unsigned char * md,unsigned int * len)907 int OpensslHmacFinal(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
908 {
909 return HMAC_Final(ctx, md, len);
910 }
911
OpensslHmacSize(const HMAC_CTX * ctx)912 size_t OpensslHmacSize(const HMAC_CTX *ctx)
913 {
914 return HMAC_size(ctx);
915 }
916
OpensslHmacCtxFree(HMAC_CTX * ctx)917 void OpensslHmacCtxFree(HMAC_CTX *ctx)
918 {
919 HMAC_CTX_free(ctx);
920 }
921
OpensslHmacCtxNew(void)922 HMAC_CTX *OpensslHmacCtxNew(void)
923 {
924 return HMAC_CTX_new();
925 }
926
OpensslEvpCipherCtxFree(EVP_CIPHER_CTX * ctx)927 void OpensslEvpCipherCtxFree(EVP_CIPHER_CTX *ctx)
928 {
929 EVP_CIPHER_CTX_free(ctx);
930 }
931
OpensslEvpAes128Ecb(void)932 const EVP_CIPHER *OpensslEvpAes128Ecb(void)
933 {
934 return EVP_aes_128_ecb();
935 }
936
OpensslEvpAes192Ecb(void)937 const EVP_CIPHER *OpensslEvpAes192Ecb(void)
938 {
939 return EVP_aes_192_ecb();
940 }
941
OpensslEvpAes256Ecb(void)942 const EVP_CIPHER *OpensslEvpAes256Ecb(void)
943 {
944 return EVP_aes_256_ecb();
945 }
946
OpensslEvpAes128Cbc(void)947 const EVP_CIPHER *OpensslEvpAes128Cbc(void)
948 {
949 return EVP_aes_128_cbc();
950 }
951
OpensslEvpAes192Cbc(void)952 const EVP_CIPHER *OpensslEvpAes192Cbc(void)
953 {
954 return EVP_aes_192_cbc();
955 }
956
OpensslEvpAes256Cbc(void)957 const EVP_CIPHER *OpensslEvpAes256Cbc(void)
958 {
959 return EVP_aes_256_cbc();
960 }
961
OpensslEvpAes128Ctr(void)962 const EVP_CIPHER *OpensslEvpAes128Ctr(void)
963 {
964 return EVP_aes_128_ctr();
965 }
966
OpensslEvpAes192Ctr(void)967 const EVP_CIPHER *OpensslEvpAes192Ctr(void)
968 {
969 return EVP_aes_192_ctr();
970 }
971
OpensslEvpAes256Ctr(void)972 const EVP_CIPHER *OpensslEvpAes256Ctr(void)
973 {
974 return EVP_aes_256_ctr();
975 }
976
OpensslEvpAes128Ofb(void)977 const EVP_CIPHER *OpensslEvpAes128Ofb(void)
978 {
979 return EVP_aes_128_ofb();
980 }
981
OpensslEvpAes192Ofb(void)982 const EVP_CIPHER *OpensslEvpAes192Ofb(void)
983 {
984 return EVP_aes_192_ofb();
985 }
986
OpensslEvpAes256Ofb(void)987 const EVP_CIPHER *OpensslEvpAes256Ofb(void)
988 {
989 return EVP_aes_256_ofb();
990 }
991
OpensslEvpAes128Cfb(void)992 const EVP_CIPHER *OpensslEvpAes128Cfb(void)
993 {
994 return EVP_aes_128_cfb();
995 }
996
OpensslEvpAes192Cfb(void)997 const EVP_CIPHER *OpensslEvpAes192Cfb(void)
998 {
999 return EVP_aes_192_cfb();
1000 }
1001
OpensslEvpAes256Cfb(void)1002 const EVP_CIPHER *OpensslEvpAes256Cfb(void)
1003 {
1004 return EVP_aes_256_cfb();
1005 }
1006
OpensslEvpAes128Cfb1(void)1007 const EVP_CIPHER *OpensslEvpAes128Cfb1(void)
1008 {
1009 return EVP_aes_128_cfb1();
1010 }
1011
OpensslEvpAes192Cfb1(void)1012 const EVP_CIPHER *OpensslEvpAes192Cfb1(void)
1013 {
1014 return EVP_aes_192_cfb1();
1015 }
1016
OpensslEvpAes256Cfb1(void)1017 const EVP_CIPHER *OpensslEvpAes256Cfb1(void)
1018 {
1019 return EVP_aes_256_cfb1();
1020 }
1021
OpensslEvpAes128Cfb128(void)1022 const EVP_CIPHER *OpensslEvpAes128Cfb128(void)
1023 {
1024 return EVP_aes_128_cfb128();
1025 }
1026
OpensslEvpAes192Cfb128(void)1027 const EVP_CIPHER *OpensslEvpAes192Cfb128(void)
1028 {
1029 return EVP_aes_192_cfb128();
1030 }
1031
OpensslEvpAes256Cfb128(void)1032 const EVP_CIPHER *OpensslEvpAes256Cfb128(void)
1033 {
1034 return EVP_aes_256_cfb128();
1035 }
1036
OpensslEvpAes128Cfb8(void)1037 const EVP_CIPHER *OpensslEvpAes128Cfb8(void)
1038 {
1039 return EVP_aes_128_cfb8();
1040 }
1041
OpensslEvpAes192Cfb8(void)1042 const EVP_CIPHER *OpensslEvpAes192Cfb8(void)
1043 {
1044 return EVP_aes_192_cfb8();
1045 }
1046
OpensslEvpAes256Cfb8(void)1047 const EVP_CIPHER *OpensslEvpAes256Cfb8(void)
1048 {
1049 return EVP_aes_256_cfb8();
1050 }
1051
OpensslEvpAes128Ccm(void)1052 const EVP_CIPHER *OpensslEvpAes128Ccm(void)
1053 {
1054 return EVP_aes_128_ccm();
1055 }
1056
OpensslEvpAes192Ccm(void)1057 const EVP_CIPHER *OpensslEvpAes192Ccm(void)
1058 {
1059 return EVP_aes_192_ccm();
1060 }
1061
OpensslEvpAes256Ccm(void)1062 const EVP_CIPHER *OpensslEvpAes256Ccm(void)
1063 {
1064 return EVP_aes_256_ccm();
1065 }
1066
OpensslEvpAes128Gcm(void)1067 const EVP_CIPHER *OpensslEvpAes128Gcm(void)
1068 {
1069 return EVP_aes_128_gcm();
1070 }
1071
OpensslEvpAes192Gcm(void)1072 const EVP_CIPHER *OpensslEvpAes192Gcm(void)
1073 {
1074 return EVP_aes_192_gcm();
1075 }
1076
OpensslEvpAes256Gcm(void)1077 const EVP_CIPHER *OpensslEvpAes256Gcm(void)
1078 {
1079 return EVP_aes_256_gcm();
1080 }
1081
OpensslEvpSm4Ecb(void)1082 const EVP_CIPHER *OpensslEvpSm4Ecb(void)
1083 {
1084 return EVP_sm4_ecb();
1085 }
1086
OpensslEvpSm4Cbc(void)1087 const EVP_CIPHER *OpensslEvpSm4Cbc(void)
1088 {
1089 return EVP_sm4_cbc();
1090 }
1091
OpensslEvpSm4Cfb(void)1092 const EVP_CIPHER *OpensslEvpSm4Cfb(void)
1093 {
1094 return EVP_sm4_cfb();
1095 }
1096
OpensslEvpSm4Cfb128(void)1097 const EVP_CIPHER *OpensslEvpSm4Cfb128(void)
1098 {
1099 return EVP_sm4_cfb128();
1100 }
1101
OpensslEvpSm4Ctr(void)1102 const EVP_CIPHER *OpensslEvpSm4Ctr(void)
1103 {
1104 return EVP_sm4_ctr();
1105 }
1106
OpensslEvpSm4Ofb(void)1107 const EVP_CIPHER *OpensslEvpSm4Ofb(void)
1108 {
1109 return EVP_sm4_ofb();
1110 }
1111
OpensslEvpCipherFetch(OSSL_LIB_CTX * ctx,const char * algorithm,const char * properties)1112 EVP_CIPHER *OpensslEvpCipherFetch(OSSL_LIB_CTX *ctx, const char *algorithm, const char *properties)
1113 {
1114 return EVP_CIPHER_fetch(ctx, algorithm, properties);
1115 }
1116
OpensslEvpCipherFree(EVP_CIPHER * cipher)1117 void OpensslEvpCipherFree(EVP_CIPHER *cipher)
1118 {
1119 EVP_CIPHER_free(cipher);
1120 }
1121
OpensslEvpCipherCtxNew(void)1122 EVP_CIPHER_CTX *OpensslEvpCipherCtxNew(void)
1123 {
1124 return EVP_CIPHER_CTX_new();
1125 }
1126
OpensslEvpCipherInit(EVP_CIPHER_CTX * ctx,const EVP_CIPHER * cipher,const unsigned char * key,const unsigned char * iv,int enc)1127 int OpensslEvpCipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
1128 const unsigned char *key, const unsigned char *iv, int enc)
1129 {
1130 return EVP_CipherInit(ctx, cipher, key, iv, enc);
1131 }
1132
OpensslEvpCipherCtxSetPadding(EVP_CIPHER_CTX * ctx,int pad)1133 int OpensslEvpCipherCtxSetPadding(EVP_CIPHER_CTX *ctx, int pad)
1134 {
1135 return EVP_CIPHER_CTX_set_padding(ctx, pad);
1136 }
1137
OpensslEvpCipherFinalEx(EVP_CIPHER_CTX * ctx,unsigned char * out,int * outl)1138 int OpensslEvpCipherFinalEx(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
1139 {
1140 return EVP_CipherFinal_ex(ctx, out, outl);
1141 }
1142
OpensslEvpCipherUpdate(EVP_CIPHER_CTX * ctx,unsigned char * out,int * outl,const unsigned char * in,int inl)1143 int OpensslEvpCipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, const unsigned char *in, int inl)
1144 {
1145 return EVP_CipherUpdate(ctx, out, outl, in, inl);
1146 }
1147
OpensslEvpDesEde3Ecb(void)1148 const EVP_CIPHER *OpensslEvpDesEde3Ecb(void)
1149 {
1150 return EVP_des_ede3_ecb();
1151 }
1152
OpensslEvpDesEde3Cbc(void)1153 const EVP_CIPHER *OpensslEvpDesEde3Cbc(void)
1154 {
1155 return EVP_des_ede3_cbc();
1156 }
1157
OpensslEvpDesEde3Ofb(void)1158 const EVP_CIPHER *OpensslEvpDesEde3Ofb(void)
1159 {
1160 return EVP_des_ede3_ofb();
1161 }
1162
OpensslEvpDesEde3Cfb64(void)1163 const EVP_CIPHER *OpensslEvpDesEde3Cfb64(void)
1164 {
1165 return EVP_des_ede3_cfb64();
1166 }
1167
OpensslEvpDesEde3Cfb1(void)1168 const EVP_CIPHER *OpensslEvpDesEde3Cfb1(void)
1169 {
1170 return EVP_des_ede3_cfb1();
1171 }
1172
OpensslEvpDesEde3Cfb8(void)1173 const EVP_CIPHER *OpensslEvpDesEde3Cfb8(void)
1174 {
1175 return EVP_des_ede3_cfb8();
1176 }
1177
OpensslSm2CipherTextSize(const EC_KEY * key,const EVP_MD * digest,size_t msgLen,size_t * cipherTextSize)1178 int OpensslSm2CipherTextSize(const EC_KEY *key, const EVP_MD *digest, size_t msgLen, size_t *cipherTextSize)
1179 {
1180 return ossl_sm2_ciphertext_size(key, digest, msgLen, cipherTextSize);
1181 }
1182
OpensslSm2PlainTextSize(const unsigned char * cipherText,size_t cipherTextSize,size_t * plainTextSize)1183 int OpensslSm2PlainTextSize(const unsigned char *cipherText, size_t cipherTextSize, size_t *plainTextSize)
1184 {
1185 return ossl_sm2_plaintext_size(cipherText, cipherTextSize, plainTextSize);
1186 }
1187
OpensslOsslSm2Encrypt(const EC_KEY * key,const EVP_MD * digest,const uint8_t * msg,size_t msgLen,uint8_t * cipherTextBuf,size_t * cipherTextLen)1188 int OpensslOsslSm2Encrypt(const EC_KEY *key, const EVP_MD *digest, const uint8_t *msg,
1189 size_t msgLen, uint8_t *cipherTextBuf, size_t *cipherTextLen)
1190 {
1191 return ossl_sm2_encrypt(key, digest, msg, msgLen, cipherTextBuf, cipherTextLen);
1192 }
1193
OpensslOsslSm2Decrypt(const EC_KEY * key,const EVP_MD * digest,const uint8_t * cipherText,size_t cipherTextLen,uint8_t * plainTextBuf,size_t * plainTextLen)1194 int OpensslOsslSm2Decrypt(const EC_KEY *key, const EVP_MD *digest, const uint8_t *cipherText,
1195 size_t cipherTextLen, uint8_t *plainTextBuf, size_t *plainTextLen)
1196 {
1197 return ossl_sm2_decrypt(key, digest, cipherText, cipherTextLen, plainTextBuf, plainTextLen);
1198 }
1199
OpensslPkcs5Pbkdf2Hmac(const char * pass,int passlen,const unsigned char * salt,int saltlen,int iter,const EVP_MD * digest,int keylen,unsigned char * out)1200 int OpensslPkcs5Pbkdf2Hmac(const char *pass, int passlen, const unsigned char *salt,
1201 int saltlen, int iter, const EVP_MD *digest, int keylen, unsigned char *out)
1202 {
1203 return PKCS5_PBKDF2_HMAC(pass, passlen, salt, saltlen, iter, digest, keylen, out);
1204 }
1205
OpensslEcGroupNewByCurveName(int nid)1206 EC_GROUP *OpensslEcGroupNewByCurveName(int nid)
1207 {
1208 return EC_GROUP_new_by_curve_name(nid);
1209 }
1210
OpensslEvpCipherCtxCtrl(EVP_CIPHER_CTX * ctx,int type,int arg,void * ptr)1211 int OpensslEvpCipherCtxCtrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr)
1212 {
1213 return EVP_CIPHER_CTX_ctrl(ctx, type, arg, ptr);
1214 }
1215
OpensslDhNew(void)1216 DH *OpensslDhNew(void)
1217 {
1218 return DH_new();
1219 }
1220
OpensslDhComputeKeyPadded(unsigned char * key,const BIGNUM * pubKey,DH * dh)1221 int OpensslDhComputeKeyPadded(unsigned char *key, const BIGNUM *pubKey, DH *dh)
1222 {
1223 return DH_compute_key_padded(key, pubKey, dh);
1224 }
1225
OpensslDhFree(DH * dh)1226 void OpensslDhFree(DH *dh)
1227 {
1228 DH_free(dh);
1229 }
1230
OpensslDhGenerateKey(DH * dh)1231 int OpensslDhGenerateKey(DH *dh)
1232 {
1233 return DH_generate_key(dh);
1234 }
1235
OpensslDhGet0P(const DH * dh)1236 const BIGNUM *OpensslDhGet0P(const DH *dh)
1237 {
1238 return DH_get0_p(dh);
1239 }
1240
OpensslDhGet0Q(const DH * dh)1241 const BIGNUM *OpensslDhGet0Q(const DH *dh)
1242 {
1243 return DH_get0_q(dh);
1244 }
1245
OpensslDhGet0G(const DH * dh)1246 const BIGNUM *OpensslDhGet0G(const DH *dh)
1247 {
1248 return DH_get0_g(dh);
1249 }
1250
OpensslDhGetLength(const DH * dh)1251 long OpensslDhGetLength(const DH *dh)
1252 {
1253 return DH_get_length(dh);
1254 }
1255
OpensslDhSetLength(DH * dh,long length)1256 int OpensslDhSetLength(DH *dh, long length)
1257 {
1258 return DH_set_length(dh, length);
1259 }
1260
OpensslDhGet0PubKey(const DH * dh)1261 const BIGNUM *OpensslDhGet0PubKey(const DH *dh)
1262 {
1263 return DH_get0_pub_key(dh);
1264 }
1265
OpensslDhGet0PrivKey(const DH * dh)1266 const BIGNUM *OpensslDhGet0PrivKey(const DH *dh)
1267 {
1268 return DH_get0_priv_key(dh);
1269 }
1270
OpensslEvpPkeySet1Dh(EVP_PKEY * pkey,DH * key)1271 int OpensslEvpPkeySet1Dh(EVP_PKEY *pkey, DH *key)
1272 {
1273 return EVP_PKEY_set1_DH(pkey, key);
1274 }
1275
OpensslEvpPkeyGet1Dh(EVP_PKEY * pkey)1276 DH *OpensslEvpPkeyGet1Dh(EVP_PKEY *pkey)
1277 {
1278 return EVP_PKEY_get1_DH(pkey);
1279 }
1280
OpensslEvpPkeyAssignDh(EVP_PKEY * pkey,DH * key)1281 int OpensslEvpPkeyAssignDh(EVP_PKEY *pkey, DH *key)
1282 {
1283 return EVP_PKEY_assign_DH(pkey, key);
1284 }
1285
OpensslEvpPkeyCtxSetDhParamgenPrimeLen(EVP_PKEY_CTX * ctx,int pbits)1286 int OpensslEvpPkeyCtxSetDhParamgenPrimeLen(EVP_PKEY_CTX *ctx, int pbits)
1287 {
1288 return EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, pbits);
1289 }
1290
OpensslEvpPkeyCtxSetSignatureMd(EVP_PKEY_CTX * ctx,const EVP_MD * md)1291 int OpensslEvpPkeyCtxSetSignatureMd(EVP_PKEY_CTX *ctx, const EVP_MD *md)
1292 {
1293 return EVP_PKEY_CTX_set_signature_md(ctx, md);
1294 }
1295
OpensslDhUpRef(DH * r)1296 int OpensslDhUpRef(DH *r)
1297 {
1298 return DH_up_ref(r);
1299 }
1300
OpensslDhSet0Pqg(DH * dh,BIGNUM * p,BIGNUM * q,BIGNUM * g)1301 int OpensslDhSet0Pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
1302 {
1303 return DH_set0_pqg(dh, p, q, g);
1304 }
1305
OpensslDhSet0Key(DH * dh,BIGNUM * pubKey,BIGNUM * privKey)1306 int OpensslDhSet0Key(DH *dh, BIGNUM *pubKey, BIGNUM *privKey)
1307 {
1308 return DH_set0_key(dh, pubKey, privKey);
1309 }
1310
OpensslD2iSm2CipherText(const uint8_t * ciphertext,size_t ciphertextLen)1311 struct Sm2CipherTextSt *OpensslD2iSm2CipherText(const uint8_t *ciphertext, size_t ciphertextLen)
1312 {
1313 return d2i_Sm2CipherText(NULL, &ciphertext, ciphertextLen);
1314 }
1315
OpensslSm2CipherTextFree(struct Sm2CipherTextSt * sm2Text)1316 void OpensslSm2CipherTextFree(struct Sm2CipherTextSt *sm2Text)
1317 {
1318 Sm2CipherText_free(sm2Text);
1319 }
1320
OpensslAsn1OctetStringFree(ASN1_OCTET_STRING * field)1321 void OpensslAsn1OctetStringFree(ASN1_OCTET_STRING *field)
1322 {
1323 ASN1_OCTET_STRING_free(field);
1324 }
1325
OpensslAsn1OctetStringNew(void)1326 ASN1_OCTET_STRING *OpensslAsn1OctetStringNew(void)
1327 {
1328 return ASN1_OCTET_STRING_new();
1329 }
1330
OpensslAsn1OctetStringSet(ASN1_OCTET_STRING * x,const unsigned char * d,int len)1331 int OpensslAsn1OctetStringSet(ASN1_OCTET_STRING *x, const unsigned char *d, int len)
1332 {
1333 return ASN1_STRING_set(x, d, len);
1334 }
1335
OpensslSm2CipherTextNew(void)1336 struct Sm2CipherTextSt *OpensslSm2CipherTextNew(void)
1337 {
1338 return Sm2CipherText_new();
1339 }
1340
OpensslI2dSm2CipherText(struct Sm2CipherTextSt * sm2Text,unsigned char ** returnData)1341 int OpensslI2dSm2CipherText(struct Sm2CipherTextSt *sm2Text, unsigned char **returnData)
1342 {
1343 return i2d_Sm2CipherText(sm2Text, returnData);
1344 }
1345
OpensslAsn1StringLength(ASN1_OCTET_STRING * p)1346 int OpensslAsn1StringLength(ASN1_OCTET_STRING *p)
1347 {
1348 return ASN1_STRING_length(p);
1349 }
1350
OpensslAsn1StringGet0Data(ASN1_OCTET_STRING * p)1351 const unsigned char *OpensslAsn1StringGet0Data(ASN1_OCTET_STRING *p)
1352 {
1353 return ASN1_STRING_get0_data(p);
1354 }
1355
OpensslOsslParamBldNew(void)1356 OSSL_PARAM_BLD *OpensslOsslParamBldNew(void)
1357 {
1358 return OSSL_PARAM_BLD_new();
1359 }
1360
OpensslOsslParamBldFree(OSSL_PARAM_BLD * bld)1361 void OpensslOsslParamBldFree(OSSL_PARAM_BLD *bld)
1362 {
1363 OSSL_PARAM_BLD_free(bld);
1364 }
1365
OpensslOsslParamBldToParam(OSSL_PARAM_BLD * bld)1366 OSSL_PARAM *OpensslOsslParamBldToParam(OSSL_PARAM_BLD *bld)
1367 {
1368 return OSSL_PARAM_BLD_to_param(bld);
1369 }
1370
OpensslOsslParamBldPushUtf8String(OSSL_PARAM_BLD * bld,const char * key,const char * buf,size_t bsize)1371 int OpensslOsslParamBldPushUtf8String(OSSL_PARAM_BLD *bld, const char *key, const char *buf, size_t bsize)
1372 {
1373 return OSSL_PARAM_BLD_push_utf8_string(bld, key, buf, bsize);
1374 }
1375
OpensslOsslParamBldPushOctetString(OSSL_PARAM_BLD * bld,const char * key,const void * buf,size_t bsize)1376 int OpensslOsslParamBldPushOctetString(OSSL_PARAM_BLD *bld, const char *key, const void *buf, size_t bsize)
1377 {
1378 return OSSL_PARAM_BLD_push_octet_string(bld, key, buf, bsize);
1379 }
1380
OpensslEvpPkeyCtxSetEcParamgenCurveNid(EVP_PKEY_CTX * ctx,int nid)1381 int OpensslEvpPkeyCtxSetEcParamgenCurveNid(EVP_PKEY_CTX *ctx, int nid)
1382 {
1383 return EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid);
1384 }
1385
OpensslEvpPkeyFromDataInit(EVP_PKEY_CTX * ctx)1386 int OpensslEvpPkeyFromDataInit(EVP_PKEY_CTX *ctx)
1387 {
1388 return EVP_PKEY_fromdata_init(ctx);
1389 }
1390
OpensslEvpPkeyFromData(EVP_PKEY_CTX * ctx,EVP_PKEY ** ppkey,int selection,OSSL_PARAM params[])1391 int OpensslEvpPkeyFromData(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection, OSSL_PARAM params[])
1392 {
1393 return EVP_PKEY_fromdata(ctx, ppkey, selection, params);
1394 }
1395
OpensslEvpPkeyGet1EcKey(EVP_PKEY * pkey)1396 EC_KEY *OpensslEvpPkeyGet1EcKey(EVP_PKEY *pkey)
1397 {
1398 return EVP_PKEY_get1_EC_KEY(pkey);
1399 }
1400
OpensslOsslParamFree(OSSL_PARAM * params)1401 void OpensslOsslParamFree(OSSL_PARAM *params)
1402 {
1403 OSSL_PARAM_free(params);
1404 }
1405
OpensslEcOct2Point(const EC_GROUP * group,EC_POINT * p,const unsigned char * buf,size_t len,BN_CTX * ctx)1406 int OpensslEcOct2Point(const EC_GROUP *group, EC_POINT *p, const unsigned char *buf, size_t len, BN_CTX *ctx)
1407 {
1408 return EC_POINT_oct2point(group, p, buf, len, ctx);
1409 }
1410
OpensslEcPointSetAffineCoordinates(const EC_GROUP * group,EC_POINT * p,const BIGNUM * x,const BIGNUM * y,BN_CTX * ctx)1411 int OpensslEcPointSetAffineCoordinates(const EC_GROUP *group, EC_POINT *p,
1412 const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx)
1413 {
1414 return EC_POINT_set_affine_coordinates(group, p, x, y, ctx);
1415 }
1416
OpensslEcPointGetAffineCoordinates(const EC_GROUP * group,const EC_POINT * p,BIGNUM * x,BIGNUM * y,BN_CTX * ctx)1417 int OpensslEcPointGetAffineCoordinates(const EC_GROUP *group, const EC_POINT *p,
1418 BIGNUM *x, BIGNUM *y, BN_CTX *ctx)
1419 {
1420 return EC_POINT_get_affine_coordinates(group, p, x, y, ctx);
1421 }
1422
OpensslEvpKdfFetch(OSSL_LIB_CTX * libctx,const char * algorithm,const char * properties)1423 EVP_KDF *OpensslEvpKdfFetch(OSSL_LIB_CTX *libctx, const char *algorithm,
1424 const char *properties)
1425 {
1426 return EVP_KDF_fetch(libctx, algorithm, properties);
1427 }
1428
OpensslEvpKdfCtxNew(EVP_KDF * kdf)1429 EVP_KDF_CTX *OpensslEvpKdfCtxNew(EVP_KDF *kdf)
1430 {
1431 return EVP_KDF_CTX_new(kdf);
1432 }
1433
OpensslEvpKdfFree(EVP_KDF * kdf)1434 void OpensslEvpKdfFree(EVP_KDF *kdf)
1435 {
1436 EVP_KDF_free(kdf);
1437 }
1438
OpensslEvpKdfCtxFree(EVP_KDF_CTX * ctx)1439 void OpensslEvpKdfCtxFree(EVP_KDF_CTX *ctx)
1440 {
1441 EVP_KDF_CTX_free(ctx);
1442 }
1443
OpensslEvpKdfDerive(EVP_KDF_CTX * ctx,unsigned char * key,size_t keylen,const OSSL_PARAM params[])1444 int OpensslEvpKdfDerive(EVP_KDF_CTX *ctx, unsigned char *key, size_t keylen,
1445 const OSSL_PARAM params[])
1446 {
1447 return EVP_KDF_derive(ctx, key, keylen, params);
1448 }
1449
OpensslOsslEncoderCtxNewForPkey(const EVP_PKEY * pkey,int selection,const char * outputType,const char * outputStruct,const char * propquery)1450 OSSL_ENCODER_CTX *OpensslOsslEncoderCtxNewForPkey(const EVP_PKEY *pkey, int selection,
1451 const char *outputType, const char *outputStruct, const char *propquery)
1452 {
1453 return OSSL_ENCODER_CTX_new_for_pkey(pkey, selection, outputType, outputStruct, propquery);
1454 }
1455
OpensslOsslEncoderToData(OSSL_ENCODER_CTX * ctx,unsigned char ** pdata,size_t * len)1456 int OpensslOsslEncoderToData(OSSL_ENCODER_CTX *ctx, unsigned char **pdata, size_t *len)
1457 {
1458 return OSSL_ENCODER_to_data(ctx, pdata, len);
1459 }
1460
OpensslOsslEncoderCtxFree(OSSL_ENCODER_CTX * ctx)1461 void OpensslOsslEncoderCtxFree(OSSL_ENCODER_CTX *ctx)
1462 {
1463 OSSL_ENCODER_CTX_free(ctx);
1464 }
1465
OpensslOsslDecoderCtxNewForPkey(EVP_PKEY ** pkey,const char * inputType,const char * inputStructure,const char * keytype,int selection,OSSL_LIB_CTX * libctx,const char * propquery)1466 OSSL_DECODER_CTX *OpensslOsslDecoderCtxNewForPkey(EVP_PKEY **pkey, const char *inputType,
1467 const char *inputStructure, const char *keytype, int selection, OSSL_LIB_CTX *libctx, const char *propquery)
1468 {
1469 return OSSL_DECODER_CTX_new_for_pkey(pkey, inputType, inputStructure, keytype, selection, libctx, propquery);
1470 }
1471
OpensslOsslDecoderFromData(OSSL_DECODER_CTX * ctx,const unsigned char ** pdata,size_t * len)1472 int OpensslOsslDecoderFromData(OSSL_DECODER_CTX *ctx, const unsigned char **pdata,
1473 size_t *len)
1474 {
1475 return OSSL_DECODER_from_data(ctx, pdata, len);
1476 }
1477
OpensslOsslDecoderCtxFree(OSSL_DECODER_CTX * ctx)1478 void OpensslOsslDecoderCtxFree(OSSL_DECODER_CTX *ctx)
1479 {
1480 OSSL_DECODER_CTX_free(ctx);
1481 }
1482