Diff: STRATO-apps/wordpress_03/app/wp-includes/sodium_compat/lib/sodium_compat.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
namespace Sodium;
3
+
4
+
require_once dirname(dirname(__FILE__)) . '/autoload.php';
5
+
6
+
use ParagonIE_Sodium_Compat;
7
+
8
+
/**
9
+
* This file will monkey patch the pure-PHP implementation in place of the
10
+
* PECL functions, but only if they do not already exist.
11
+
*
12
+
* Thus, the functions just proxy to the appropriate ParagonIE_Sodium_Compat
13
+
* method.
14
+
*/
15
+
if (!is_callable('\\Sodium\\bin2hex')) {
16
+
/**
17
+
* @see ParagonIE_Sodium_Compat::bin2hex()
18
+
* @param string $string
19
+
* @return string
20
+
* @throws \SodiumException
21
+
* @throws \TypeError
22
+
*/
23
+
function bin2hex(
24
+
#[\SensitiveParameter]
25
+
$string
26
+
) {
27
+
return ParagonIE_Sodium_Compat::bin2hex($string);
28
+
}
29
+
}
30
+
if (!is_callable('\\Sodium\\compare')) {
31
+
/**
32
+
* @see ParagonIE_Sodium_Compat::compare()
33
+
* @param string $a
34
+
* @param string $b
35
+
* @return int
36
+
* @throws \SodiumException
37
+
* @throws \TypeError
38
+
*/
39
+
function compare(
40
+
#[\SensitiveParameter]
41
+
$a,
42
+
#[\SensitiveParameter]
43
+
$b
44
+
) {
45
+
return ParagonIE_Sodium_Compat::compare($a, $b);
46
+
}
47
+
}
48
+
if (!is_callable('\\Sodium\\crypto_aead_aes256gcm_decrypt')) {
49
+
/**
50
+
* @see ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_decrypt()
51
+
* @param string $message
52
+
* @param string $assocData
53
+
* @param string $nonce
54
+
* @param string $key
55
+
* @return string|bool
56
+
*/
57
+
function crypto_aead_aes256gcm_decrypt(
58
+
$message,
59
+
$assocData,
60
+
$nonce,
61
+
#[\SensitiveParameter]
62
+
$key
63
+
) {
64
+
try {
65
+
return ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_decrypt($message, $assocData, $nonce, $key);
66
+
} catch (\TypeError $ex) {
67
+
return false;
68
+
} catch (\SodiumException $ex) {
69
+
return false;
70
+
}
71
+
}
72
+
}
73
+
if (!is_callable('\\Sodium\\crypto_aead_aes256gcm_encrypt')) {
74
+
/**
75
+
* @see ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_encrypt()
76
+
* @param string $message
77
+
* @param string $assocData
78
+
* @param string $nonce
79
+
* @param string $key
80
+
* @return string
81
+
* @throws \SodiumException
82
+
* @throws \TypeError
83
+
*/
84
+
function crypto_aead_aes256gcm_encrypt(
85
+
#[\SensitiveParameter]
86
+
$message,
87
+
$assocData,
88
+
$nonce,
89
+
#[\SensitiveParameter]
90
+
$key
91
+
) {
92
+
return ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_encrypt($message, $assocData, $nonce, $key);
93
+
}
94
+
}
95
+
if (!is_callable('\\Sodium\\crypto_aead_aes256gcm_is_available')) {
96
+
/**
97
+
* @see ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_is_available()
98
+
* @return bool
99
+
*/
100
+
function crypto_aead_aes256gcm_is_available()
101
+
{
102
+
return ParagonIE_Sodium_Compat::crypto_aead_aes256gcm_is_available();
103
+
}
104
+
}
105
+
if (!is_callable('\\Sodium\\crypto_aead_chacha20poly1305_decrypt')) {
106
+
/**
107
+
* @see ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_decrypt()
108
+
* @param string $message
109
+
* @param string $assocData
110
+
* @param string $nonce
111
+
* @param string $key
112
+
* @return string|bool
113
+
*/
114
+
function crypto_aead_chacha20poly1305_decrypt(
115
+
$message,
116
+
$assocData,
117
+
$nonce,
118
+
#[\SensitiveParameter]
119
+
$key
120
+
) {
121
+
try {
122
+
return ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_decrypt($message, $assocData, $nonce, $key);
123
+
} catch (\TypeError $ex) {
124
+
return false;
125
+
} catch (\SodiumException $ex) {
126
+
return false;
127
+
}
128
+
}
129
+
}
130
+
if (!is_callable('\\Sodium\\crypto_aead_chacha20poly1305_encrypt')) {
131
+
/**
132
+
* @see ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_encrypt()
133
+
* @param string $message
134
+
* @param string $assocData
135
+
* @param string $nonce
136
+
* @param string $key
137
+
* @return string
138
+
* @throws \SodiumException
139
+
* @throws \TypeError
140
+
*/
141
+
function crypto_aead_chacha20poly1305_encrypt(
142
+
#[\SensitiveParameter]
143
+
$message,
144
+
$assocData,
145
+
$nonce,
146
+
#[\SensitiveParameter]
147
+
$key
148
+
) {
149
+
return ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_encrypt($message, $assocData, $nonce, $key);
150
+
}
151
+
}
152
+
if (!is_callable('\\Sodium\\crypto_aead_chacha20poly1305_ietf_decrypt')) {
153
+
/**
154
+
* @see ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_ietf_decrypt()
155
+
* @param string $message
156
+
* @param string $assocData
157
+
* @param string $nonce
158
+
* @param string $key
159
+
* @return string|bool
160
+
*/
161
+
function crypto_aead_chacha20poly1305_ietf_decrypt(
162
+
$message,
163
+
$assocData,
164
+
$nonce,
165
+
#[\SensitiveParameter]
166
+
$key
167
+
) {
168
+
try {
169
+
return ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_ietf_decrypt($message, $assocData, $nonce, $key);
170
+
} catch (\TypeError $ex) {
171
+
return false;
172
+
} catch (\SodiumException $ex) {
173
+
return false;
174
+
}
175
+
}
176
+
}
177
+
if (!is_callable('\\Sodium\\crypto_aead_chacha20poly1305_ietf_encrypt')) {
178
+
/**
179
+
* @see ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_ietf_encrypt()
180
+
* @param string $message
181
+
* @param string $assocData
182
+
* @param string $nonce
183
+
* @param string $key
184
+
* @return string
185
+
* @throws \SodiumException
186
+
* @throws \TypeError
187
+
*/
188
+
function crypto_aead_chacha20poly1305_ietf_encrypt(
189
+
#[\SensitiveParameter]
190
+
$message,
191
+
$assocData,
192
+
$nonce,
193
+
#[\SensitiveParameter]
194
+
$key
195
+
) {
196
+
return ParagonIE_Sodium_Compat::crypto_aead_chacha20poly1305_ietf_encrypt($message, $assocData, $nonce, $key);
197
+
}
198
+
}
199
+
if (!is_callable('\\Sodium\\crypto_auth')) {
200
+
/**
201
+
* @see ParagonIE_Sodium_Compat::crypto_auth()
202
+
* @param string $message
203
+
* @param string $key
204
+
* @return string
205
+
* @throws \SodiumException
206
+
* @throws \TypeError
207
+
*/
208
+
function crypto_auth(
209
+
$message,
210
+
#[\SensitiveParameter]
211
+
$key
212
+
) {
213
+
return ParagonIE_Sodium_Compat::crypto_auth($message, $key);
214
+
}
215
+
}
216
+
if (!is_callable('\\Sodium\\crypto_auth_verify')) {
217
+
/**
218
+
* @see ParagonIE_Sodium_Compat::crypto_auth_verify()
219
+
* @param string $mac
220
+
* @param string $message
221
+
* @param string $key
222
+
* @return bool
223
+
* @throws \SodiumException
224
+
* @throws \TypeError
225
+
*/
226
+
function crypto_auth_verify(
227
+
$mac,
228
+
$message,
229
+
#[\SensitiveParameter]
230
+
$key
231
+
) {
232
+
return ParagonIE_Sodium_Compat::crypto_auth_verify($mac, $message, $key);
233
+
}
234
+
}
235
+
if (!is_callable('\\Sodium\\crypto_box')) {
236
+
/**
237
+
* @see ParagonIE_Sodium_Compat::crypto_box()
238
+
* @param string $message
239
+
* @param string $nonce
240
+
* @param string $kp
241
+
* @return string
242
+
* @throws \SodiumException
243
+
* @throws \TypeError
244
+
*/
245
+
function crypto_box(
246
+
#[\SensitiveParameter]
247
+
$message,
248
+
$nonce,
249
+
#[\SensitiveParameter]
250
+
$kp
251
+
) {
252
+
return ParagonIE_Sodium_Compat::crypto_box($message, $nonce, $kp);
253
+
}
254
+
}
255
+
if (!is_callable('\\Sodium\\crypto_box_keypair')) {
256
+
/**
257
+
* @see ParagonIE_Sodium_Compat::crypto_box_keypair()
258
+
* @return string
259
+
* @throws \SodiumException
260
+
* @throws \TypeError
261
+
*/
262
+
function crypto_box_keypair()
263
+
{
264
+
return ParagonIE_Sodium_Compat::crypto_box_keypair();
265
+
}
266
+
}
267
+
if (!is_callable('\\Sodium\\crypto_box_keypair_from_secretkey_and_publickey')) {
268
+
/**
269
+
* @see ParagonIE_Sodium_Compat::crypto_box_keypair_from_secretkey_and_publickey()
270
+
* @param string $sk
271
+
* @param string $pk
272
+
* @return string
273
+
* @throws \SodiumException
274
+
* @throws \TypeError
275
+
*/
276
+
function crypto_box_keypair_from_secretkey_and_publickey(
277
+
#[\SensitiveParameter]
278
+
$sk,
279
+
$pk
280
+
) {
281
+
return ParagonIE_Sodium_Compat::crypto_box_keypair_from_secretkey_and_publickey($sk, $pk);
282
+
}
283
+
}
284
+
if (!is_callable('\\Sodium\\crypto_box_open')) {
285
+
/**
286
+
* @see ParagonIE_Sodium_Compat::crypto_box_open()
287
+
* @param string $message
288
+
* @param string $nonce
289
+
* @param string $kp
290
+
* @return string|bool
291
+
*/
292
+
function crypto_box_open(
293
+
#[\SensitiveParameter]
294
+
$message,
295
+
$nonce,
296
+
#[\SensitiveParameter]
297
+
$kp
298
+
) {
299
+
try {
300
+
return ParagonIE_Sodium_Compat::crypto_box_open($message, $nonce, $kp);
301
+
} catch (\TypeError $ex) {
302
+
return false;
303
+
} catch (\SodiumException $ex) {
304
+
return false;
305
+
}
306
+
}
307
+
}
308
+
if (!is_callable('\\Sodium\\crypto_box_publickey')) {
309
+
/**
310
+
* @see ParagonIE_Sodium_Compat::crypto_box_publickey()
311
+
* @param string $keypair
312
+
* @return string
313
+
* @throws \SodiumException
314
+
* @throws \TypeError
315
+
*/
316
+
function crypto_box_publickey(
317
+
#[\SensitiveParameter]
318
+
$keypair
319
+
) {
320
+
return ParagonIE_Sodium_Compat::crypto_box_publickey($keypair);
321
+
}
322
+
}
323
+
if (!is_callable('\\Sodium\\crypto_box_publickey_from_secretkey')) {
324
+
/**
325
+
* @see ParagonIE_Sodium_Compat::crypto_box_publickey_from_secretkey()
326
+
* @param string $sk
327
+
* @return string
328
+
* @throws \SodiumException
329
+
* @throws \TypeError
330
+
*/
331
+
function crypto_box_publickey_from_secretkey(
332
+
#[\SensitiveParameter]
333
+
$sk
334
+
) {
335
+
return ParagonIE_Sodium_Compat::crypto_box_publickey_from_secretkey($sk);
336
+
}
337
+
}
338
+
if (!is_callable('\\Sodium\\crypto_box_seal')) {
339
+
/**
340
+
* @see ParagonIE_Sodium_Compat::crypto_box_seal_open()
341
+
* @param string $message
342
+
* @param string $publicKey
343
+
* @return string
344
+
* @throws \SodiumException
345
+
* @throws \TypeError
346
+
*/
347
+
function crypto_box_seal(
348
+
#[\SensitiveParameter]
349
+
$message,
350
+
$publicKey
351
+
) {
352
+
return ParagonIE_Sodium_Compat::crypto_box_seal($message, $publicKey);
353
+
}
354
+
}
355
+
if (!is_callable('\\Sodium\\crypto_box_seal_open')) {
356
+
/**
357
+
* @see ParagonIE_Sodium_Compat::crypto_box_seal_open()
358
+
* @param string $message
359
+
* @param string $kp
360
+
* @return string|bool
361
+
*/
362
+
function crypto_box_seal_open(
363
+
$message,
364
+
#[\SensitiveParameter]
365
+
$kp
366
+
) {
367
+
try {
368
+
return ParagonIE_Sodium_Compat::crypto_box_seal_open($message, $kp);
369
+
} catch (\TypeError $ex) {
370
+
return false;
371
+
} catch (\SodiumException $ex) {
372
+
return false;
373
+
}
374
+
}
375
+
}
376
+
if (!is_callable('\\Sodium\\crypto_box_secretkey')) {
377
+
/**
378
+
* @see ParagonIE_Sodium_Compat::crypto_box_secretkey()
379
+
* @param string $keypair
380
+
* @return string
381
+
* @throws \SodiumException
382
+
* @throws \TypeError
383
+
*/
384
+
function crypto_box_secretkey(
385
+
#[\SensitiveParameter]
386
+
$keypair
387
+
) {
388
+
return ParagonIE_Sodium_Compat::crypto_box_secretkey($keypair);
389
+
}
390
+
}
391
+
if (!is_callable('\\Sodium\\crypto_generichash')) {
392
+
/**
393
+
* @see ParagonIE_Sodium_Compat::crypto_generichash()
394
+
* @param string $message
395
+
* @param string|null $key
396
+
* @param int $outLen
397
+
* @return string
398
+
* @throws \SodiumException
399
+
* @throws \TypeError
400
+
*/
401
+
function crypto_generichash(
402
+
$message,
403
+
#[\SensitiveParameter]
404
+
$key = null,
405
+
$outLen = 32
406
+
) {
407
+
return ParagonIE_Sodium_Compat::crypto_generichash($message, $key, $outLen);
408
+
}
409
+
}
410
+
if (!is_callable('\\Sodium\\crypto_generichash_final')) {
411
+
/**
412
+
* @see ParagonIE_Sodium_Compat::crypto_generichash_final()
413
+
* @param string|null $ctx
414
+
* @param int $outputLength
415
+
* @return string
416
+
* @throws \SodiumException
417
+
* @throws \TypeError
418
+
*/
419
+
function crypto_generichash_final(
420
+
#[\SensitiveParameter]
421
+
&$ctx,
422
+
$outputLength = 32
423
+
) {
424
+
return ParagonIE_Sodium_Compat::crypto_generichash_final($ctx, $outputLength);
425
+
}
426
+
}
427
+
if (!is_callable('\\Sodium\\crypto_generichash_init')) {
428
+
/**
429
+
* @see ParagonIE_Sodium_Compat::crypto_generichash_init()
430
+
* @param string|null $key
431
+
* @param int $outLen
432
+
* @return string
433
+
* @throws \SodiumException
434
+
* @throws \TypeError
435
+
*/
436
+
function crypto_generichash_init(
437
+
#[\SensitiveParameter]
438
+
$key = null,
439
+
$outLen = 32
440
+
) {
441
+
return ParagonIE_Sodium_Compat::crypto_generichash_init($key, $outLen);
442
+
}
443
+
}
444
+
if (!is_callable('\\Sodium\\crypto_generichash_update')) {
445
+
/**
446
+
* @see ParagonIE_Sodium_Compat::crypto_generichash_update()
447
+
* @param string|null $ctx
448
+
* @param string $message
449
+
* @return void
450
+
* @throws \SodiumException
451
+
* @throws \TypeError
452
+
*/
453
+
function crypto_generichash_update(
454
+
#[\SensitiveParameter]
455
+
&$ctx,
456
+
$message = ''
457
+
) {
458
+
ParagonIE_Sodium_Compat::crypto_generichash_update($ctx, $message);
459
+
}
460
+
}
461
+
if (!is_callable('\\Sodium\\crypto_kx')) {
462
+
/**
463
+
* @see ParagonIE_Sodium_Compat::crypto_kx()
464
+
* @param string $my_secret
465
+
* @param string $their_public
466
+
* @param string $client_public
467
+
* @param string $server_public
468
+
* @return string
469
+
* @throws \SodiumException
470
+
* @throws \TypeError
471
+
*/
472
+
function crypto_kx(
473
+
#[\SensitiveParameter]
474
+
$my_secret,
475
+
$their_public,
476
+
$client_public,
477
+
$server_public
478
+
) {
479
+
return ParagonIE_Sodium_Compat::crypto_kx(
480
+
$my_secret,
481
+
$their_public,
482
+
$client_public,
483
+
$server_public,
484
+
true
485
+
);
486
+
}
487
+
}
488
+
if (!is_callable('\\Sodium\\crypto_pwhash')) {
489
+
/**
490
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash()
491
+
* @param int $outlen
492
+
* @param string $passwd
493
+
* @param string $salt
494
+
* @param int $opslimit
495
+
* @param int $memlimit
496
+
* @return string
497
+
* @throws \SodiumException
498
+
* @throws \TypeError
499
+
*/
500
+
function crypto_pwhash(
501
+
$outlen,
502
+
#[\SensitiveParameter]
503
+
$passwd,
504
+
$salt,
505
+
$opslimit,
506
+
$memlimit
507
+
) {
508
+
return ParagonIE_Sodium_Compat::crypto_pwhash($outlen, $passwd, $salt, $opslimit, $memlimit);
509
+
}
510
+
}
511
+
if (!is_callable('\\Sodium\\crypto_pwhash_str')) {
512
+
/**
513
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash_str()
514
+
* @param string $passwd
515
+
* @param int $opslimit
516
+
* @param int $memlimit
517
+
* @return string
518
+
* @throws \SodiumException
519
+
* @throws \TypeError
520
+
*/
521
+
function crypto_pwhash_str(
522
+
#[\SensitiveParameter]
523
+
$passwd,
524
+
$opslimit,
525
+
$memlimit
526
+
) {
527
+
return ParagonIE_Sodium_Compat::crypto_pwhash_str($passwd, $opslimit, $memlimit);
528
+
}
529
+
}
530
+
if (!is_callable('\\Sodium\\crypto_pwhash_str_verify')) {
531
+
/**
532
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash_str_verify()
533
+
* @param string $passwd
534
+
* @param string $hash
535
+
* @return bool
536
+
* @throws \SodiumException
537
+
* @throws \TypeError
538
+
*/
539
+
function crypto_pwhash_str_verify(
540
+
#[\SensitiveParameter]
541
+
$passwd,
542
+
#[\SensitiveParameter]
543
+
$hash
544
+
) {
545
+
return ParagonIE_Sodium_Compat::crypto_pwhash_str_verify($passwd, $hash);
546
+
}
547
+
}
548
+
if (!is_callable('\\Sodium\\crypto_pwhash_scryptsalsa208sha256')) {
549
+
/**
550
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256()
551
+
* @param int $outlen
552
+
* @param string $passwd
553
+
* @param string $salt
554
+
* @param int $opslimit
555
+
* @param int $memlimit
556
+
* @return string
557
+
* @throws \SodiumException
558
+
* @throws \TypeError
559
+
*/
560
+
function crypto_pwhash_scryptsalsa208sha256(
561
+
$outlen,
562
+
#[\SensitiveParameter]
563
+
$passwd,
564
+
#[\SensitiveParameter]
565
+
$salt,
566
+
$opslimit,
567
+
$memlimit
568
+
) {
569
+
return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256($outlen, $passwd, $salt, $opslimit, $memlimit);
570
+
}
571
+
}
572
+
if (!is_callable('\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str')) {
573
+
/**
574
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str()
575
+
* @param string $passwd
576
+
* @param int $opslimit
577
+
* @param int $memlimit
578
+
* @return string
579
+
* @throws \SodiumException
580
+
* @throws \TypeError
581
+
*/
582
+
function crypto_pwhash_scryptsalsa208sha256_str(
583
+
#[\SensitiveParameter]
584
+
$passwd,
585
+
$opslimit,
586
+
$memlimit
587
+
) {
588
+
return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str($passwd, $opslimit, $memlimit);
589
+
}
590
+
}
591
+
if (!is_callable('\\Sodium\\crypto_pwhash_scryptsalsa208sha256_str_verify')) {
592
+
/**
593
+
* @see ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str_verify()
594
+
* @param string $passwd
595
+
* @param string $hash
596
+
* @return bool
597
+
* @throws \SodiumException
598
+
* @throws \TypeError
599
+
*/
600
+
function crypto_pwhash_scryptsalsa208sha256_str_verify(
601
+
#[\SensitiveParameter]
602
+
$passwd,
603
+
#[\SensitiveParameter]
604
+
$hash
605
+
) {
606
+
return ParagonIE_Sodium_Compat::crypto_pwhash_scryptsalsa208sha256_str_verify($passwd, $hash);
607
+
}
608
+
}
609
+
if (!is_callable('\\Sodium\\crypto_scalarmult')) {
610
+
/**
611
+
* @see ParagonIE_Sodium_Compat::crypto_scalarmult()
612
+
* @param string $n
613
+
* @param string $p
614
+
* @return string
615
+
* @throws \SodiumException
616
+
* @throws \TypeError
617
+
*/
618
+
function crypto_scalarmult(
619
+
#[\SensitiveParameter]
620
+
$n,
621
+
$p
622
+
) {
623
+
return ParagonIE_Sodium_Compat::crypto_scalarmult($n, $p);
624
+
}
625
+
}
626
+
if (!is_callable('\\Sodium\\crypto_scalarmult_base')) {
627
+
/**
628
+
* @see ParagonIE_Sodium_Compat::crypto_scalarmult_base()
629
+
* @param string $n
630
+
* @return string
631
+
* @throws \SodiumException
632
+
* @throws \TypeError
633
+
*/
634
+
function crypto_scalarmult_base(
635
+
#[\SensitiveParameter]
636
+
$n
637
+
) {
638
+
return ParagonIE_Sodium_Compat::crypto_scalarmult_base($n);
639
+
}
640
+
}
641
+
if (!is_callable('\\Sodium\\crypto_secretbox')) {
642
+
/**
643
+
* @see ParagonIE_Sodium_Compat::crypto_secretbox()
644
+
* @param string $message
645
+
* @param string $nonce
646
+
* @param string $key
647
+
* @return string
648
+
* @throws \SodiumException
649
+
* @throws \TypeError
650
+
*/
651
+
function crypto_secretbox(
652
+
#[\SensitiveParameter]
653
+
$message,
654
+
$nonce,
655
+
#[\SensitiveParameter]
656
+
$key
657
+
) {
658
+
return ParagonIE_Sodium_Compat::crypto_secretbox($message, $nonce, $key);
659
+
}
660
+
}
661
+
if (!is_callable('\\Sodium\\crypto_secretbox_open')) {
662
+
/**
663
+
* @see ParagonIE_Sodium_Compat::crypto_secretbox_open()
664
+
* @param string $message
665
+
* @param string $nonce
666
+
* @param string $key
667
+
* @return string|bool
668
+
*/
669
+
function crypto_secretbox_open(
670
+
$message,
671
+
$nonce,
672
+
#[\SensitiveParameter]
673
+
$key
674
+
) {
675
+
try {
676
+
return ParagonIE_Sodium_Compat::crypto_secretbox_open($message, $nonce, $key);
677
+
} catch (\TypeError $ex) {
678
+
return false;
679
+
} catch (\SodiumException $ex) {
680
+
return false;
681
+
}
682
+
}
683
+
}
684
+
if (!is_callable('\\Sodium\\crypto_shorthash')) {
685
+
/**
686
+
* @see ParagonIE_Sodium_Compat::crypto_shorthash()
687
+
* @param string $message
688
+
* @param string $key
689
+
* @return string
690
+
* @throws \SodiumException
691
+
* @throws \TypeError
692
+
*/
693
+
function crypto_shorthash(
694
+
$message,
695
+
#[\SensitiveParameter]
696
+
$key = ''
697
+
) {
698
+
return ParagonIE_Sodium_Compat::crypto_shorthash($message, $key);
699
+
}
700
+
}
701
+
if (!is_callable('\\Sodium\\crypto_sign')) {
702
+
/**
703
+
* @see ParagonIE_Sodium_Compat::crypto_sign()
704
+
* @param string $message
705
+
* @param string $sk
706
+
* @return string
707
+
* @throws \SodiumException
708
+
* @throws \TypeError
709
+
*/
710
+
function crypto_sign(
711
+
$message,
712
+
#[\SensitiveParameter]
713
+
$sk
714
+
) {
715
+
return ParagonIE_Sodium_Compat::crypto_sign($message, $sk);
716
+
}
717
+
}
718
+
if (!is_callable('\\Sodium\\crypto_sign_detached')) {
719
+
/**
720
+
* @see ParagonIE_Sodium_Compat::crypto_sign_detached()
721
+
* @param string $message
722
+
* @param string $sk
723
+
* @return string
724
+
* @throws \SodiumException
725
+
* @throws \TypeError
726
+
*/
727
+
function crypto_sign_detached(
728
+
$message,
729
+
#[\SensitiveParameter]
730
+
$sk
731
+
) {
732
+
return ParagonIE_Sodium_Compat::crypto_sign_detached($message, $sk);
733
+
}
734
+
}
735
+
if (!is_callable('\\Sodium\\crypto_sign_keypair')) {
736
+
/**
737
+
* @see ParagonIE_Sodium_Compat::crypto_sign_keypair()
738
+
* @return string
739
+
* @throws \SodiumException
740
+
* @throws \TypeError
741
+
*/
742
+
function crypto_sign_keypair()
743
+
{
744
+
return ParagonIE_Sodium_Compat::crypto_sign_keypair();
745
+
}
746
+
}
747
+
if (!is_callable('\\Sodium\\crypto_sign_open')) {
748
+
/**
749
+
* @see ParagonIE_Sodium_Compat::crypto_sign_open()
750
+
* @param string $signedMessage
751
+
* @param string $pk
752
+
* @return string|bool
753
+
*/
754
+
function crypto_sign_open($signedMessage, $pk)
755
+
{
756
+
try {
757
+
return ParagonIE_Sodium_Compat::crypto_sign_open($signedMessage, $pk);
758
+
} catch (\TypeError $ex) {
759
+
return false;
760
+
} catch (\SodiumException $ex) {
761
+
return false;
762
+
}
763
+
}
764
+
}
765
+
if (!is_callable('\\Sodium\\crypto_sign_publickey')) {
766
+
/**
767
+
* @see ParagonIE_Sodium_Compat::crypto_sign_publickey()
768
+
* @param string $keypair
769
+
* @return string
770
+
* @throws \SodiumException
771
+
* @throws \TypeError
772
+
*/
773
+
function crypto_sign_publickey(
774
+
#[\SensitiveParameter]
775
+
$keypair
776
+
) {
777
+
return ParagonIE_Sodium_Compat::crypto_sign_publickey($keypair);
778
+
}
779
+
}
780
+
if (!is_callable('\\Sodium\\crypto_sign_publickey_from_secretkey')) {
781
+
/**
782
+
* @see ParagonIE_Sodium_Compat::crypto_sign_publickey_from_secretkey()
783
+
* @param string $sk
784
+
* @return string
785
+
* @throws \SodiumException
786
+
* @throws \TypeError
787
+
*/
788
+
function crypto_sign_publickey_from_secretkey(
789
+
#[\SensitiveParameter]
790
+
$sk
791
+
) {
792
+
return ParagonIE_Sodium_Compat::crypto_sign_publickey_from_secretkey($sk);
793
+
}
794
+
}
795
+
if (!is_callable('\\Sodium\\crypto_sign_secretkey')) {
796
+
/**
797
+
* @see ParagonIE_Sodium_Compat::crypto_sign_secretkey()
798
+
* @param string $keypair
799
+
* @return string
800
+
* @throws \SodiumException
801
+
* @throws \TypeError
802
+
*/
803
+
function crypto_sign_secretkey(
804
+
#[\SensitiveParameter]
805
+
$keypair
806
+
) {
807
+
return ParagonIE_Sodium_Compat::crypto_sign_secretkey($keypair);
808
+
}
809
+
}
810
+
if (!is_callable('\\Sodium\\crypto_sign_seed_keypair')) {
811
+
/**
812
+
* @see ParagonIE_Sodium_Compat::crypto_sign_seed_keypair()
813
+
* @param string $seed
814
+
* @return string
815
+
* @throws \SodiumException
816
+
* @throws \TypeError
817
+
*/
818
+
function crypto_sign_seed_keypair(
819
+
#[\SensitiveParameter]
820
+
$seed
821
+
) {
822
+
return ParagonIE_Sodium_Compat::crypto_sign_seed_keypair($seed);
823
+
}
824
+
}
825
+
if (!is_callable('\\Sodium\\crypto_sign_verify_detached')) {
826
+
/**
827
+
* @see ParagonIE_Sodium_Compat::crypto_sign_verify_detached()
828
+
* @param string $signature
829
+
* @param string $message
830
+
* @param string $pk
831
+
* @return bool
832
+
* @throws \SodiumException
833
+
* @throws \TypeError
834
+
*/
835
+
function crypto_sign_verify_detached($signature, $message, $pk)
836
+
{
837
+
return ParagonIE_Sodium_Compat::crypto_sign_verify_detached($signature, $message, $pk);
838
+
}
839
+
}
840
+
if (!is_callable('\\Sodium\\crypto_sign_ed25519_pk_to_curve25519')) {
841
+
/**
842
+
* @see ParagonIE_Sodium_Compat::crypto_sign_ed25519_pk_to_curve25519()
843
+
* @param string $pk
844
+
* @return string
845
+
* @throws \SodiumException
846
+
* @throws \TypeError
847
+
*/
848
+
function crypto_sign_ed25519_pk_to_curve25519($pk)
849
+
{
850
+
return ParagonIE_Sodium_Compat::crypto_sign_ed25519_pk_to_curve25519($pk);
851
+
}
852
+
}
853
+
if (!is_callable('\\Sodium\\crypto_sign_ed25519_sk_to_curve25519')) {
854
+
/**
855
+
* @see ParagonIE_Sodium_Compat::crypto_sign_ed25519_sk_to_curve25519()
856
+
* @param string $sk
857
+
* @return string
858
+
* @throws \SodiumException
859
+
* @throws \TypeError
860
+
*/
861
+
function crypto_sign_ed25519_sk_to_curve25519(
862
+
#[\SensitiveParameter]
863
+
$sk
864
+
) {
865
+
return ParagonIE_Sodium_Compat::crypto_sign_ed25519_sk_to_curve25519($sk);
866
+
}
867
+
}
868
+
if (!is_callable('\\Sodium\\crypto_stream')) {
869
+
/**
870
+
* @see ParagonIE_Sodium_Compat::crypto_stream()
871
+
* @param int $len
872
+
* @param string $nonce
873
+
* @param string $key
874
+
* @return string
875
+
* @throws \SodiumException
876
+
* @throws \TypeError
877
+
*/
878
+
function crypto_stream(
879
+
$len,
880
+
$nonce,
881
+
#[\SensitiveParameter]
882
+
$key
883
+
) {
884
+
return ParagonIE_Sodium_Compat::crypto_stream($len, $nonce, $key);
885
+
}
886
+
}
887
+
if (!is_callable('\\Sodium\\crypto_stream_xor')) {
888
+
/**
889
+
* @see ParagonIE_Sodium_Compat::crypto_stream_xor()
890
+
* @param string $message
891
+
* @param string $nonce
892
+
* @param string $key
893
+
* @return string
894
+
* @throws \SodiumException
895
+
* @throws \TypeError
896
+
*/
897
+
function crypto_stream_xor(
898
+
#[\SensitiveParameter]
899
+
$message,
900
+
$nonce,
901
+
#[\SensitiveParameter]
902
+
$key
903
+
) {
904
+
return ParagonIE_Sodium_Compat::crypto_stream_xor($message, $nonce, $key);
905
+
}
906
+
}
907
+
if (!is_callable('\\Sodium\\hex2bin')) {
908
+
/**
909
+
* @see ParagonIE_Sodium_Compat::hex2bin()
910
+
* @param string $string
911
+
* @return string
912
+
* @throws \SodiumException
913
+
* @throws \TypeError
914
+
*/
915
+
function hex2bin(
916
+
#[\SensitiveParameter]
917
+
$string
918
+
) {
919
+
return ParagonIE_Sodium_Compat::hex2bin($string);
920
+
}
921
+
}
922
+
if (!is_callable('\\Sodium\\memcmp')) {
923
+
/**
924
+
* @see ParagonIE_Sodium_Compat::memcmp()
925
+
* @param string $a
926
+
* @param string $b
927
+
* @return int
928
+
* @throws \SodiumException
929
+
* @throws \TypeError
930
+
*/
931
+
function memcmp(
932
+
#[\SensitiveParameter]
933
+
$a,
934
+
#[\SensitiveParameter]
935
+
$b
936
+
) {
937
+
return ParagonIE_Sodium_Compat::memcmp($a, $b);
938
+
}
939
+
}
940
+
if (!is_callable('\\Sodium\\memzero')) {
941
+
/**
942
+
* @see ParagonIE_Sodium_Compat::memzero()
943
+
* @param string $str
944
+
* @return void
945
+
* @throws \SodiumException
946
+
* @throws \TypeError
947
+
*
948
+
* @psalm-suppress MissingParamType
949
+
* @psalm-suppress MissingReturnType
950
+
* @psalm-suppress ReferenceConstraintViolation
951
+
*/
952
+
function memzero(
953
+
#[\SensitiveParameter]
954
+
&$str
955
+
) {
956
+
ParagonIE_Sodium_Compat::memzero($str);
957
+
}
958
+
}
959
+
if (!is_callable('\\Sodium\\randombytes_buf')) {
960
+
/**
961
+
* @see ParagonIE_Sodium_Compat::randombytes_buf()
962
+
* @param int $amount
963
+
* @return string
964
+
* @throws \TypeError
965
+
*/
966
+
function randombytes_buf($amount)
967
+
{
968
+
return ParagonIE_Sodium_Compat::randombytes_buf($amount);
969
+
}
970
+
}
971
+
972
+
if (!is_callable('\\Sodium\\randombytes_uniform')) {
973
+
/**
974
+
* @see ParagonIE_Sodium_Compat::randombytes_uniform()
975
+
* @param int $upperLimit
976
+
* @return int
977
+
* @throws \SodiumException
978
+
* @throws \Error
979
+
*/
980
+
function randombytes_uniform($upperLimit)
981
+
{
982
+
return ParagonIE_Sodium_Compat::randombytes_uniform($upperLimit);
983
+
}
984
+
}
985
+
986
+
if (!is_callable('\\Sodium\\randombytes_random16')) {
987
+
/**
988
+
* @see ParagonIE_Sodium_Compat::randombytes_random16()
989
+
* @return int
990
+
*/
991
+
function randombytes_random16()
992
+
{
993
+
return ParagonIE_Sodium_Compat::randombytes_random16();
994
+
}
995
+
}
996
+
997
+
if (!defined('\\Sodium\\CRYPTO_AUTH_BYTES')) {
998
+
require_once dirname(__FILE__) . '/constants.php';
999
+
}
1000
+