-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBoringSSL-GRPC.podspec
3502 lines (3477 loc) · 224 KB
/
BoringSSL-GRPC.podspec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# This file has been automatically generated from a template file.
# Please make modifications to
# `templates/src/objective-c/BoringSSL-GRPC.podspec.template` instead. This
# file can be regenerated from the template by running
# `tools/buildgen/generate_projects.sh`.
# BoringSSL CocoaPods podspec
# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Pod::Spec.new do |s|
s.name = 'BoringSSL-GRPC'
version = '0.0.7'
s.version = version
s.summary = 'BoringSSL is a fork of OpenSSL that is designed to meet Google\'s needs.'
# Adapted from the homepage:
s.description = <<-DESC
BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.
Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is.
We don't recommend that third parties depend upon it. Doing so is likely to be frustrating
because there are no guarantees of API stability. Only the latest version of this pod is
supported, and every new version is a new major version.
We update Google libraries and programs that use BoringSSL as needed when deciding to make API
changes. This allows us to mostly avoid compromises in the name of compatibility. It works for
us, but it may not work for you.
As a Cocoapods pod, it has the advantage over OpenSSL's pods that the library doesn't need to
be precompiled. This eliminates the 10 - 20 minutes of wait the first time a user does "pod
install", lets it be used as a dynamic framework (pending solution of Cocoapods' issue #4605),
and works with bitcode automatically. It's also thought to be smaller than OpenSSL (which takes
1MB - 2MB per ARM architecture), but we don't have specific numbers yet.
BoringSSL arose because Google used OpenSSL for many years in various ways and, over time, built
up a large number of patches that were maintained while tracking upstream OpenSSL. As Google's
product portfolio became more complex, more copies of OpenSSL sprung up and the effort involved
in maintaining all these patches in multiple places was growing steadily.
Currently BoringSSL is the SSL library in Chrome/Chromium, Android (but it's not part of the
NDK) and a number of other apps/programs.
DESC
s.homepage = 'https://github.com/google/boringssl'
s.license = { :type => 'Mixed', :file => 'LICENSE' }
# "The name and email addresses of the library maintainers, not the Podspec maintainer."
s.authors = 'Adam Langley', 'David Benjamin', 'Matt Braithwaite'
s.source = {
:git => 'https://github.com/google/boringssl.git',
:commit => "1c2769383f027befac5b75b6cedd25daf3bf4dcf",
}
s.ios.deployment_target = '7.0'
s.osx.deployment_target = '10.7'
s.tvos.deployment_target = '10.0'
s.watchos.deployment_target = '4.0'
name = 'openssl_grpc'
# When creating a dynamic framework, name it openssl.framework instead of BoringSSL.framework.
# This lets users write their includes like `#include <openssl/ssl.h>` as opposed to `#include
# <BoringSSL/ssl.h>`.
s.module_name = name
# When creating a dynamic framework, copy the headers under `include/openssl/` into the root of
# the `Headers/` directory of the framework (i.e., not under `Headers/include/openssl`).
#
# TODO(jcanizales): Debug why this doesn't work on macOS.
s.header_mappings_dir = 'src/include/openssl'
# The above has an undesired effect when creating a static library: It forces users to write
# includes like `#include <BoringSSL/ssl.h>`. `s.header_dir` adds a path prefix to that, and
# because Cocoapods lets omit the pod name when including headers of static libraries, the
# following lets users write `#include <openssl/ssl.h>`.
s.header_dir = name
# The module map and umbrella header created automatically by Cocoapods don't work for C libraries
# like this one. The following file, and a correct umbrella header, are created on the fly by the
# `prepare_command` of this pod.
s.module_map = 'src/include/openssl/BoringSSL.modulemap'
# We don't need to inhibit all warnings; only -Wno-shorten-64-to-32. But Cocoapods' linter doesn't
# want that for some reason.
s.compiler_flags = '-DOPENSSL_NO_ASM', '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w'
s.requires_arc = false
# Like many other C libraries, BoringSSL has its public headers under `include/<libname>/` and its
# sources and private headers in other directories outside `include/`. Cocoapods' linter doesn't
# allow any header to be listed outside the `header_mappings_dir` (even though doing so works in
# practice). Because we need our `header_mappings_dir` to be `include/openssl/` for the reason
# mentioned above, we work around the linter limitation by dividing the pod into two subspecs, one
# for public headers and the other for implementation. Each gets its own `header_mappings_dir`,
# making the linter happy.
s.subspec 'Interface' do |ss|
ss.header_mappings_dir = 'src/include/openssl'
ss.source_files = 'src/include/openssl/*.h'
end
s.subspec 'Implementation' do |ss|
ss.header_mappings_dir = 'src'
ss.source_files = 'src/ssl/*.{h,c,cc}',
'src/ssl/**/*.{h,c,cc}',
'src/crypto/*.{h,c,cc}',
'src/crypto/**/*.{h,c,cc}',
# We have to include fiat because spake25519 depends on it
'src/third_party/fiat/*.{h,c,cc}',
# Include the err_data.c pre-generated in boringssl's master-with-bazel branch
'err_data.c'
ss.private_header_files = 'src/ssl/*.h',
'src/ssl/**/*.h',
'src/crypto/*.h',
'src/crypto/**/*.h',
'src/third_party/fiat/*.h'
# bcm.c includes other source files, creating duplicated symbols. Since it is not used, we
# explicitly exclude it from the pod.
# TODO (mxyan): Work with BoringSSL team to remove this hack.
ss.exclude_files = 'src/crypto/fipsmodule/bcm.c',
'src/**/*_test.*',
'src/**/test_*.*',
'src/**/test/*.*'
ss.dependency "#{s.name}/Interface", version
end
s.prepare_command = <<-END_OF_COMMAND
# Add a module map and an umbrella header
cat > src/include/openssl/umbrella.h <<EOF
#include "ssl.h"
#include "crypto.h"
#include "aes.h"
/* The following macros are defined by base.h. The latter is the first file included by the
other headers. */
#if defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
# include "arm_arch.h"
#endif
#include "asn1.h"
#include "asn1_mac.h"
#include "asn1t.h"
#include "blowfish.h"
#include "cast.h"
#include "chacha.h"
#include "cmac.h"
#include "conf.h"
#include "cpu.h"
#include "curve25519.h"
#include "des.h"
#include "dtls1.h"
#include "hkdf.h"
#include "md4.h"
#include "md5.h"
#include "obj_mac.h"
#include "objects.h"
#include "opensslv.h"
#include "ossl_typ.h"
#include "pkcs12.h"
#include "pkcs7.h"
#include "pkcs8.h"
#include "poly1305.h"
#include "rand.h"
#include "rc4.h"
#include "ripemd.h"
#include "safestack.h"
#include "srtp.h"
#include "x509.h"
#include "x509v3.h"
EOF
cat > src/include/openssl/BoringSSL.modulemap <<EOF
framework module openssl {
umbrella header "umbrella.h"
textual header "arm_arch.h"
export *
module * { export * }
}
EOF
# The symbol prefixing mechanism is performed by redefining BoringSSL symbols with "#define
# SOME_BORINGSSL_SYMBOL GRPC_SHADOW_SOME_BORINGSSL_SYMBOL". Unfortunately, some symbols are
# already redefined as macros in BoringSSL headers in the form "#define SOME_BORINGSSL_SYMBOL
# SOME_BORINGSSL_SYMBOL" Such type of redefinition will cause "SOME_BORINGSSL_SYMBOL redefined"
# error when using together with our prefix header. So the workaround in the below lines removes
# all such type of #define directives.
sed -i'.back' '/^#define \\([A-Za-z0-9_]*\\) \\1/d' src/include/openssl/*.h
# Remove lines of the format below for the same reason above
# #define SOME_BORINGSSL_SYMBOL \
# SOME_BORINGSSL_SYMBOL
sed -i'.back' '/^#define.*\\\\$/{N;/^#define \\([A-Za-z0-9_]*\\) *\\\\\\n *\\1/d;}' src/include/openssl/*.h
# We are renaming openssl to openssl_grpc so that there is no conflict with openssl if it exists
find . -type f \\( -path '*.h' -or -path '*.cc' -or -path '*.c' \\) -print0 | xargs -0 -L1 sed -E -i'.grpc_back' 's;#include <openssl/;#include <openssl_grpc/;g'
END_OF_COMMAND
# Redefine symbols to avoid conflict when the same app also depends on OpenSSL. The list of
# symbols are src/objective-c/grpc_shadow_boringssl_symbol_list.
# This is the last part of this file.
s.prefix_header_contents =
'#define a2i_GENERAL_NAME GRPC_SHADOW_a2i_GENERAL_NAME',
'#define a2i_ipadd GRPC_SHADOW_a2i_ipadd',
'#define a2i_IPADDRESS GRPC_SHADOW_a2i_IPADDRESS',
'#define a2i_IPADDRESS_NC GRPC_SHADOW_a2i_IPADDRESS_NC',
'#define abi_test_bad_unwind_temporary GRPC_SHADOW_abi_test_bad_unwind_temporary',
'#define abi_test_bad_unwind_wrong_register GRPC_SHADOW_abi_test_bad_unwind_wrong_register',
'#define abi_test_clobber_r10 GRPC_SHADOW_abi_test_clobber_r10',
'#define abi_test_clobber_r11 GRPC_SHADOW_abi_test_clobber_r11',
'#define abi_test_clobber_r12 GRPC_SHADOW_abi_test_clobber_r12',
'#define abi_test_clobber_r13 GRPC_SHADOW_abi_test_clobber_r13',
'#define abi_test_clobber_r14 GRPC_SHADOW_abi_test_clobber_r14',
'#define abi_test_clobber_r15 GRPC_SHADOW_abi_test_clobber_r15',
'#define abi_test_clobber_r8 GRPC_SHADOW_abi_test_clobber_r8',
'#define abi_test_clobber_r9 GRPC_SHADOW_abi_test_clobber_r9',
'#define abi_test_clobber_rax GRPC_SHADOW_abi_test_clobber_rax',
'#define abi_test_clobber_rbp GRPC_SHADOW_abi_test_clobber_rbp',
'#define abi_test_clobber_rbx GRPC_SHADOW_abi_test_clobber_rbx',
'#define abi_test_clobber_rcx GRPC_SHADOW_abi_test_clobber_rcx',
'#define abi_test_clobber_rdi GRPC_SHADOW_abi_test_clobber_rdi',
'#define abi_test_clobber_rdx GRPC_SHADOW_abi_test_clobber_rdx',
'#define abi_test_clobber_rsi GRPC_SHADOW_abi_test_clobber_rsi',
'#define abi_test_clobber_xmm0 GRPC_SHADOW_abi_test_clobber_xmm0',
'#define abi_test_clobber_xmm1 GRPC_SHADOW_abi_test_clobber_xmm1',
'#define abi_test_clobber_xmm10 GRPC_SHADOW_abi_test_clobber_xmm10',
'#define abi_test_clobber_xmm11 GRPC_SHADOW_abi_test_clobber_xmm11',
'#define abi_test_clobber_xmm12 GRPC_SHADOW_abi_test_clobber_xmm12',
'#define abi_test_clobber_xmm13 GRPC_SHADOW_abi_test_clobber_xmm13',
'#define abi_test_clobber_xmm14 GRPC_SHADOW_abi_test_clobber_xmm14',
'#define abi_test_clobber_xmm15 GRPC_SHADOW_abi_test_clobber_xmm15',
'#define abi_test_clobber_xmm2 GRPC_SHADOW_abi_test_clobber_xmm2',
'#define abi_test_clobber_xmm3 GRPC_SHADOW_abi_test_clobber_xmm3',
'#define abi_test_clobber_xmm4 GRPC_SHADOW_abi_test_clobber_xmm4',
'#define abi_test_clobber_xmm5 GRPC_SHADOW_abi_test_clobber_xmm5',
'#define abi_test_clobber_xmm6 GRPC_SHADOW_abi_test_clobber_xmm6',
'#define abi_test_clobber_xmm7 GRPC_SHADOW_abi_test_clobber_xmm7',
'#define abi_test_clobber_xmm8 GRPC_SHADOW_abi_test_clobber_xmm8',
'#define abi_test_clobber_xmm9 GRPC_SHADOW_abi_test_clobber_xmm9',
'#define abi_test_get_and_clear_direction_flag GRPC_SHADOW_abi_test_get_and_clear_direction_flag',
'#define abi_test_set_direction_flag GRPC_SHADOW_abi_test_set_direction_flag',
'#define abi_test_trampoline GRPC_SHADOW_abi_test_trampoline',
'#define abi_test_unwind_return GRPC_SHADOW_abi_test_unwind_return',
'#define abi_test_unwind_start GRPC_SHADOW_abi_test_unwind_start',
'#define abi_test_unwind_stop GRPC_SHADOW_abi_test_unwind_stop',
'#define ACCESS_DESCRIPTION_free GRPC_SHADOW_ACCESS_DESCRIPTION_free',
'#define ACCESS_DESCRIPTION_it GRPC_SHADOW_ACCESS_DESCRIPTION_it',
'#define ACCESS_DESCRIPTION_new GRPC_SHADOW_ACCESS_DESCRIPTION_new',
'#define aes128gcmsiv_aes_ks GRPC_SHADOW_aes128gcmsiv_aes_ks',
'#define aes128gcmsiv_aes_ks_enc_x1 GRPC_SHADOW_aes128gcmsiv_aes_ks_enc_x1',
'#define aes128gcmsiv_dec GRPC_SHADOW_aes128gcmsiv_dec',
'#define aes128gcmsiv_ecb_enc_block GRPC_SHADOW_aes128gcmsiv_ecb_enc_block',
'#define aes128gcmsiv_enc_msg_x4 GRPC_SHADOW_aes128gcmsiv_enc_msg_x4',
'#define aes128gcmsiv_enc_msg_x8 GRPC_SHADOW_aes128gcmsiv_enc_msg_x8',
'#define aes128gcmsiv_kdf GRPC_SHADOW_aes128gcmsiv_kdf',
'#define aes256gcmsiv_aes_ks GRPC_SHADOW_aes256gcmsiv_aes_ks',
'#define aes256gcmsiv_aes_ks_enc_x1 GRPC_SHADOW_aes256gcmsiv_aes_ks_enc_x1',
'#define aes256gcmsiv_dec GRPC_SHADOW_aes256gcmsiv_dec',
'#define aes256gcmsiv_ecb_enc_block GRPC_SHADOW_aes256gcmsiv_ecb_enc_block',
'#define aes256gcmsiv_enc_msg_x4 GRPC_SHADOW_aes256gcmsiv_enc_msg_x4',
'#define aes256gcmsiv_enc_msg_x8 GRPC_SHADOW_aes256gcmsiv_enc_msg_x8',
'#define aes256gcmsiv_kdf GRPC_SHADOW_aes256gcmsiv_kdf',
'#define AES_cbc_encrypt GRPC_SHADOW_AES_cbc_encrypt',
'#define AES_cfb128_encrypt GRPC_SHADOW_AES_cfb128_encrypt',
'#define AES_CMAC GRPC_SHADOW_AES_CMAC',
'#define AES_ctr128_encrypt GRPC_SHADOW_AES_ctr128_encrypt',
'#define aes_ctr_set_key GRPC_SHADOW_aes_ctr_set_key',
'#define AES_decrypt GRPC_SHADOW_AES_decrypt',
'#define AES_ecb_encrypt GRPC_SHADOW_AES_ecb_encrypt',
'#define AES_encrypt GRPC_SHADOW_AES_encrypt',
'#define aesgcmsiv_htable6_init GRPC_SHADOW_aesgcmsiv_htable6_init',
'#define aesgcmsiv_htable_init GRPC_SHADOW_aesgcmsiv_htable_init',
'#define aesgcmsiv_htable_polyval GRPC_SHADOW_aesgcmsiv_htable_polyval',
'#define aesgcmsiv_polyval_horner GRPC_SHADOW_aesgcmsiv_polyval_horner',
'#define aes_hw_cbc_encrypt GRPC_SHADOW_aes_hw_cbc_encrypt',
'#define aes_hw_ctr32_encrypt_blocks GRPC_SHADOW_aes_hw_ctr32_encrypt_blocks',
'#define aes_hw_decrypt GRPC_SHADOW_aes_hw_decrypt',
'#define aes_hw_ecb_encrypt GRPC_SHADOW_aes_hw_ecb_encrypt',
'#define aes_hw_encrypt GRPC_SHADOW_aes_hw_encrypt',
'#define aes_hw_set_decrypt_key GRPC_SHADOW_aes_hw_set_decrypt_key',
'#define aes_hw_set_encrypt_key GRPC_SHADOW_aes_hw_set_encrypt_key',
'#define aesni_gcm_decrypt GRPC_SHADOW_aesni_gcm_decrypt',
'#define aesni_gcm_encrypt GRPC_SHADOW_aesni_gcm_encrypt',
'#define aes_nohw_cbc_encrypt GRPC_SHADOW_aes_nohw_cbc_encrypt',
'#define aes_nohw_ctr32_encrypt_blocks GRPC_SHADOW_aes_nohw_ctr32_encrypt_blocks',
'#define aes_nohw_decrypt GRPC_SHADOW_aes_nohw_decrypt',
'#define aes_nohw_encrypt GRPC_SHADOW_aes_nohw_encrypt',
'#define aes_nohw_set_decrypt_key GRPC_SHADOW_aes_nohw_set_decrypt_key',
'#define aes_nohw_set_encrypt_key GRPC_SHADOW_aes_nohw_set_encrypt_key',
'#define AES_ofb128_encrypt GRPC_SHADOW_AES_ofb128_encrypt',
'#define AES_set_decrypt_key GRPC_SHADOW_AES_set_decrypt_key',
'#define AES_set_encrypt_key GRPC_SHADOW_AES_set_encrypt_key',
'#define AES_unwrap_key GRPC_SHADOW_AES_unwrap_key',
'#define AES_unwrap_key_padded GRPC_SHADOW_AES_unwrap_key_padded',
'#define AES_wrap_key GRPC_SHADOW_AES_wrap_key',
'#define AES_wrap_key_padded GRPC_SHADOW_AES_wrap_key_padded',
'#define ASN1_ANY_it GRPC_SHADOW_ASN1_ANY_it',
'#define ASN1_BIT_STRING_check GRPC_SHADOW_ASN1_BIT_STRING_check',
'#define ASN1_BIT_STRING_free GRPC_SHADOW_ASN1_BIT_STRING_free',
'#define ASN1_BIT_STRING_get_bit GRPC_SHADOW_ASN1_BIT_STRING_get_bit',
'#define ASN1_BIT_STRING_it GRPC_SHADOW_ASN1_BIT_STRING_it',
'#define ASN1_BIT_STRING_new GRPC_SHADOW_ASN1_BIT_STRING_new',
'#define ASN1_BIT_STRING_set GRPC_SHADOW_ASN1_BIT_STRING_set',
'#define ASN1_BIT_STRING_set_bit GRPC_SHADOW_ASN1_BIT_STRING_set_bit',
'#define ASN1_BMPSTRING_free GRPC_SHADOW_ASN1_BMPSTRING_free',
'#define ASN1_BMPSTRING_it GRPC_SHADOW_ASN1_BMPSTRING_it',
'#define ASN1_BMPSTRING_new GRPC_SHADOW_ASN1_BMPSTRING_new',
'#define ASN1_BOOLEAN_it GRPC_SHADOW_ASN1_BOOLEAN_it',
'#define ASN1_digest GRPC_SHADOW_ASN1_digest',
'#define asn1_do_adb GRPC_SHADOW_asn1_do_adb',
'#define asn1_enc_free GRPC_SHADOW_asn1_enc_free',
'#define asn1_enc_init GRPC_SHADOW_asn1_enc_init',
'#define asn1_enc_restore GRPC_SHADOW_asn1_enc_restore',
'#define asn1_enc_save GRPC_SHADOW_asn1_enc_save',
'#define ASN1_ENUMERATED_free GRPC_SHADOW_ASN1_ENUMERATED_free',
'#define ASN1_ENUMERATED_get GRPC_SHADOW_ASN1_ENUMERATED_get',
'#define ASN1_ENUMERATED_it GRPC_SHADOW_ASN1_ENUMERATED_it',
'#define ASN1_ENUMERATED_new GRPC_SHADOW_ASN1_ENUMERATED_new',
'#define ASN1_ENUMERATED_set GRPC_SHADOW_ASN1_ENUMERATED_set',
'#define ASN1_ENUMERATED_to_BN GRPC_SHADOW_ASN1_ENUMERATED_to_BN',
'#define asn1_ex_c2i GRPC_SHADOW_asn1_ex_c2i',
'#define asn1_ex_i2c GRPC_SHADOW_asn1_ex_i2c',
'#define ASN1_FBOOLEAN_it GRPC_SHADOW_ASN1_FBOOLEAN_it',
'#define ASN1_GENERALIZEDTIME_adj GRPC_SHADOW_ASN1_GENERALIZEDTIME_adj',
'#define ASN1_GENERALIZEDTIME_check GRPC_SHADOW_ASN1_GENERALIZEDTIME_check',
'#define ASN1_GENERALIZEDTIME_free GRPC_SHADOW_ASN1_GENERALIZEDTIME_free',
'#define ASN1_GENERALIZEDTIME_it GRPC_SHADOW_ASN1_GENERALIZEDTIME_it',
'#define ASN1_GENERALIZEDTIME_new GRPC_SHADOW_ASN1_GENERALIZEDTIME_new',
'#define ASN1_GENERALIZEDTIME_print GRPC_SHADOW_ASN1_GENERALIZEDTIME_print',
'#define ASN1_GENERALIZEDTIME_set GRPC_SHADOW_ASN1_GENERALIZEDTIME_set',
'#define ASN1_GENERALIZEDTIME_set_string GRPC_SHADOW_ASN1_GENERALIZEDTIME_set_string',
'#define asn1_generalizedtime_to_tm GRPC_SHADOW_asn1_generalizedtime_to_tm',
'#define ASN1_GENERALSTRING_free GRPC_SHADOW_ASN1_GENERALSTRING_free',
'#define ASN1_GENERALSTRING_it GRPC_SHADOW_ASN1_GENERALSTRING_it',
'#define ASN1_GENERALSTRING_new GRPC_SHADOW_ASN1_GENERALSTRING_new',
'#define ASN1_generate_nconf GRPC_SHADOW_ASN1_generate_nconf',
'#define ASN1_generate_v3 GRPC_SHADOW_ASN1_generate_v3',
'#define asn1_get_choice_selector GRPC_SHADOW_asn1_get_choice_selector',
'#define asn1_get_field_ptr GRPC_SHADOW_asn1_get_field_ptr',
'#define ASN1_get_object GRPC_SHADOW_ASN1_get_object',
'#define ASN1_IA5STRING_free GRPC_SHADOW_ASN1_IA5STRING_free',
'#define ASN1_IA5STRING_it GRPC_SHADOW_ASN1_IA5STRING_it',
'#define ASN1_IA5STRING_new GRPC_SHADOW_ASN1_IA5STRING_new',
'#define ASN1_INTEGER_cmp GRPC_SHADOW_ASN1_INTEGER_cmp',
'#define ASN1_INTEGER_dup GRPC_SHADOW_ASN1_INTEGER_dup',
'#define ASN1_INTEGER_free GRPC_SHADOW_ASN1_INTEGER_free',
'#define ASN1_INTEGER_get GRPC_SHADOW_ASN1_INTEGER_get',
'#define ASN1_INTEGER_it GRPC_SHADOW_ASN1_INTEGER_it',
'#define ASN1_INTEGER_new GRPC_SHADOW_ASN1_INTEGER_new',
'#define ASN1_INTEGER_set GRPC_SHADOW_ASN1_INTEGER_set',
'#define ASN1_INTEGER_set_uint64 GRPC_SHADOW_ASN1_INTEGER_set_uint64',
'#define ASN1_INTEGER_to_BN GRPC_SHADOW_ASN1_INTEGER_to_BN',
'#define asn1_item_combine_free GRPC_SHADOW_asn1_item_combine_free',
'#define ASN1_item_d2i GRPC_SHADOW_ASN1_item_d2i',
'#define ASN1_item_d2i_bio GRPC_SHADOW_ASN1_item_d2i_bio',
'#define ASN1_item_d2i_fp GRPC_SHADOW_ASN1_item_d2i_fp',
'#define ASN1_item_digest GRPC_SHADOW_ASN1_item_digest',
'#define ASN1_item_dup GRPC_SHADOW_ASN1_item_dup',
'#define ASN1_item_ex_d2i GRPC_SHADOW_ASN1_item_ex_d2i',
'#define ASN1_item_ex_free GRPC_SHADOW_ASN1_item_ex_free',
'#define ASN1_item_ex_i2d GRPC_SHADOW_ASN1_item_ex_i2d',
'#define ASN1_item_ex_new GRPC_SHADOW_ASN1_item_ex_new',
'#define ASN1_item_free GRPC_SHADOW_ASN1_item_free',
'#define ASN1_item_i2d GRPC_SHADOW_ASN1_item_i2d',
'#define ASN1_item_i2d_bio GRPC_SHADOW_ASN1_item_i2d_bio',
'#define ASN1_item_i2d_fp GRPC_SHADOW_ASN1_item_i2d_fp',
'#define ASN1_item_ndef_i2d GRPC_SHADOW_ASN1_item_ndef_i2d',
'#define ASN1_item_new GRPC_SHADOW_ASN1_item_new',
'#define ASN1_item_pack GRPC_SHADOW_ASN1_item_pack',
'#define ASN1_item_sign GRPC_SHADOW_ASN1_item_sign',
'#define ASN1_item_sign_ctx GRPC_SHADOW_ASN1_item_sign_ctx',
'#define ASN1_item_unpack GRPC_SHADOW_ASN1_item_unpack',
'#define ASN1_item_verify GRPC_SHADOW_ASN1_item_verify',
'#define ASN1_mbstring_copy GRPC_SHADOW_ASN1_mbstring_copy',
'#define ASN1_mbstring_ncopy GRPC_SHADOW_ASN1_mbstring_ncopy',
'#define ASN1_NULL_free GRPC_SHADOW_ASN1_NULL_free',
'#define ASN1_NULL_it GRPC_SHADOW_ASN1_NULL_it',
'#define ASN1_NULL_new GRPC_SHADOW_ASN1_NULL_new',
'#define ASN1_OBJECT_create GRPC_SHADOW_ASN1_OBJECT_create',
'#define ASN1_OBJECT_free GRPC_SHADOW_ASN1_OBJECT_free',
'#define ASN1_OBJECT_it GRPC_SHADOW_ASN1_OBJECT_it',
'#define ASN1_OBJECT_new GRPC_SHADOW_ASN1_OBJECT_new',
'#define ASN1_object_size GRPC_SHADOW_ASN1_object_size',
'#define ASN1_OCTET_STRING_cmp GRPC_SHADOW_ASN1_OCTET_STRING_cmp',
'#define ASN1_OCTET_STRING_dup GRPC_SHADOW_ASN1_OCTET_STRING_dup',
'#define ASN1_OCTET_STRING_free GRPC_SHADOW_ASN1_OCTET_STRING_free',
'#define ASN1_OCTET_STRING_it GRPC_SHADOW_ASN1_OCTET_STRING_it',
'#define ASN1_OCTET_STRING_NDEF_it GRPC_SHADOW_ASN1_OCTET_STRING_NDEF_it',
'#define ASN1_OCTET_STRING_new GRPC_SHADOW_ASN1_OCTET_STRING_new',
'#define ASN1_OCTET_STRING_set GRPC_SHADOW_ASN1_OCTET_STRING_set',
'#define ASN1_primitive_free GRPC_SHADOW_ASN1_primitive_free',
'#define ASN1_primitive_new GRPC_SHADOW_ASN1_primitive_new',
'#define ASN1_PRINTABLE_free GRPC_SHADOW_ASN1_PRINTABLE_free',
'#define ASN1_PRINTABLE_it GRPC_SHADOW_ASN1_PRINTABLE_it',
'#define ASN1_PRINTABLE_new GRPC_SHADOW_ASN1_PRINTABLE_new',
'#define ASN1_PRINTABLESTRING_free GRPC_SHADOW_ASN1_PRINTABLESTRING_free',
'#define ASN1_PRINTABLESTRING_it GRPC_SHADOW_ASN1_PRINTABLESTRING_it',
'#define ASN1_PRINTABLESTRING_new GRPC_SHADOW_ASN1_PRINTABLESTRING_new',
'#define ASN1_PRINTABLE_type GRPC_SHADOW_ASN1_PRINTABLE_type',
'#define ASN1_put_eoc GRPC_SHADOW_ASN1_put_eoc',
'#define ASN1_put_object GRPC_SHADOW_ASN1_put_object',
'#define asn1_refcount_dec_and_test_zero GRPC_SHADOW_asn1_refcount_dec_and_test_zero',
'#define asn1_refcount_set_one GRPC_SHADOW_asn1_refcount_set_one',
'#define ASN1_SEQUENCE_ANY_it GRPC_SHADOW_ASN1_SEQUENCE_ANY_it',
'#define ASN1_SEQUENCE_it GRPC_SHADOW_ASN1_SEQUENCE_it',
'#define ASN1_SET_ANY_it GRPC_SHADOW_ASN1_SET_ANY_it',
'#define asn1_set_choice_selector GRPC_SHADOW_asn1_set_choice_selector',
'#define ASN1_STRING_cmp GRPC_SHADOW_ASN1_STRING_cmp',
'#define ASN1_STRING_copy GRPC_SHADOW_ASN1_STRING_copy',
'#define ASN1_STRING_data GRPC_SHADOW_ASN1_STRING_data',
'#define ASN1_STRING_dup GRPC_SHADOW_ASN1_STRING_dup',
'#define ASN1_STRING_free GRPC_SHADOW_ASN1_STRING_free',
'#define ASN1_STRING_get0_data GRPC_SHADOW_ASN1_STRING_get0_data',
'#define ASN1_STRING_get_default_mask GRPC_SHADOW_ASN1_STRING_get_default_mask',
'#define ASN1_STRING_length GRPC_SHADOW_ASN1_STRING_length',
'#define ASN1_STRING_length_set GRPC_SHADOW_ASN1_STRING_length_set',
'#define ASN1_STRING_new GRPC_SHADOW_ASN1_STRING_new',
'#define ASN1_STRING_print GRPC_SHADOW_ASN1_STRING_print',
'#define ASN1_STRING_print_ex GRPC_SHADOW_ASN1_STRING_print_ex',
'#define ASN1_STRING_print_ex_fp GRPC_SHADOW_ASN1_STRING_print_ex_fp',
'#define ASN1_STRING_set GRPC_SHADOW_ASN1_STRING_set',
'#define ASN1_STRING_set0 GRPC_SHADOW_ASN1_STRING_set0',
'#define ASN1_STRING_set_by_NID GRPC_SHADOW_ASN1_STRING_set_by_NID',
'#define ASN1_STRING_set_default_mask GRPC_SHADOW_ASN1_STRING_set_default_mask',
'#define ASN1_STRING_set_default_mask_asc GRPC_SHADOW_ASN1_STRING_set_default_mask_asc',
'#define ASN1_STRING_TABLE_add GRPC_SHADOW_ASN1_STRING_TABLE_add',
'#define ASN1_STRING_TABLE_cleanup GRPC_SHADOW_ASN1_STRING_TABLE_cleanup',
'#define ASN1_STRING_TABLE_get GRPC_SHADOW_ASN1_STRING_TABLE_get',
'#define ASN1_STRING_to_UTF8 GRPC_SHADOW_ASN1_STRING_to_UTF8',
'#define ASN1_STRING_type GRPC_SHADOW_ASN1_STRING_type',
'#define ASN1_STRING_type_new GRPC_SHADOW_ASN1_STRING_type_new',
'#define ASN1_T61STRING_free GRPC_SHADOW_ASN1_T61STRING_free',
'#define ASN1_T61STRING_it GRPC_SHADOW_ASN1_T61STRING_it',
'#define ASN1_T61STRING_new GRPC_SHADOW_ASN1_T61STRING_new',
'#define ASN1_tag2bit GRPC_SHADOW_ASN1_tag2bit',
'#define ASN1_tag2str GRPC_SHADOW_ASN1_tag2str',
'#define ASN1_TBOOLEAN_it GRPC_SHADOW_ASN1_TBOOLEAN_it',
'#define ASN1_template_free GRPC_SHADOW_ASN1_template_free',
'#define ASN1_template_new GRPC_SHADOW_ASN1_template_new',
'#define ASN1_TIME_adj GRPC_SHADOW_ASN1_TIME_adj',
'#define ASN1_TIME_check GRPC_SHADOW_ASN1_TIME_check',
'#define ASN1_TIME_diff GRPC_SHADOW_ASN1_TIME_diff',
'#define ASN1_TIME_free GRPC_SHADOW_ASN1_TIME_free',
'#define ASN1_TIME_it GRPC_SHADOW_ASN1_TIME_it',
'#define ASN1_TIME_new GRPC_SHADOW_ASN1_TIME_new',
'#define ASN1_TIME_print GRPC_SHADOW_ASN1_TIME_print',
'#define ASN1_TIME_set GRPC_SHADOW_ASN1_TIME_set',
'#define ASN1_TIME_set_string GRPC_SHADOW_ASN1_TIME_set_string',
'#define ASN1_TIME_to_generalizedtime GRPC_SHADOW_ASN1_TIME_to_generalizedtime',
'#define ASN1_TYPE_cmp GRPC_SHADOW_ASN1_TYPE_cmp',
'#define ASN1_TYPE_free GRPC_SHADOW_ASN1_TYPE_free',
'#define ASN1_TYPE_get GRPC_SHADOW_ASN1_TYPE_get',
'#define ASN1_TYPE_new GRPC_SHADOW_ASN1_TYPE_new',
'#define ASN1_TYPE_set GRPC_SHADOW_ASN1_TYPE_set',
'#define ASN1_TYPE_set1 GRPC_SHADOW_ASN1_TYPE_set1',
'#define ASN1_UNIVERSALSTRING_free GRPC_SHADOW_ASN1_UNIVERSALSTRING_free',
'#define ASN1_UNIVERSALSTRING_it GRPC_SHADOW_ASN1_UNIVERSALSTRING_it',
'#define ASN1_UNIVERSALSTRING_new GRPC_SHADOW_ASN1_UNIVERSALSTRING_new',
'#define ASN1_UTCTIME_adj GRPC_SHADOW_ASN1_UTCTIME_adj',
'#define ASN1_UTCTIME_check GRPC_SHADOW_ASN1_UTCTIME_check',
'#define ASN1_UTCTIME_cmp_time_t GRPC_SHADOW_ASN1_UTCTIME_cmp_time_t',
'#define ASN1_UTCTIME_free GRPC_SHADOW_ASN1_UTCTIME_free',
'#define ASN1_UTCTIME_it GRPC_SHADOW_ASN1_UTCTIME_it',
'#define ASN1_UTCTIME_new GRPC_SHADOW_ASN1_UTCTIME_new',
'#define ASN1_UTCTIME_print GRPC_SHADOW_ASN1_UTCTIME_print',
'#define ASN1_UTCTIME_set GRPC_SHADOW_ASN1_UTCTIME_set',
'#define ASN1_UTCTIME_set_string GRPC_SHADOW_ASN1_UTCTIME_set_string',
'#define asn1_utctime_to_tm GRPC_SHADOW_asn1_utctime_to_tm',
'#define ASN1_UTF8STRING_free GRPC_SHADOW_ASN1_UTF8STRING_free',
'#define ASN1_UTF8STRING_it GRPC_SHADOW_ASN1_UTF8STRING_it',
'#define ASN1_UTF8STRING_new GRPC_SHADOW_ASN1_UTF8STRING_new',
'#define ASN1_VISIBLESTRING_free GRPC_SHADOW_ASN1_VISIBLESTRING_free',
'#define ASN1_VISIBLESTRING_it GRPC_SHADOW_ASN1_VISIBLESTRING_it',
'#define ASN1_VISIBLESTRING_new GRPC_SHADOW_ASN1_VISIBLESTRING_new',
'#define AUTHORITY_INFO_ACCESS_free GRPC_SHADOW_AUTHORITY_INFO_ACCESS_free',
'#define AUTHORITY_INFO_ACCESS_it GRPC_SHADOW_AUTHORITY_INFO_ACCESS_it',
'#define AUTHORITY_INFO_ACCESS_new GRPC_SHADOW_AUTHORITY_INFO_ACCESS_new',
'#define AUTHORITY_KEYID_free GRPC_SHADOW_AUTHORITY_KEYID_free',
'#define AUTHORITY_KEYID_it GRPC_SHADOW_AUTHORITY_KEYID_it',
'#define AUTHORITY_KEYID_new GRPC_SHADOW_AUTHORITY_KEYID_new',
'#define BASIC_CONSTRAINTS_free GRPC_SHADOW_BASIC_CONSTRAINTS_free',
'#define BASIC_CONSTRAINTS_it GRPC_SHADOW_BASIC_CONSTRAINTS_it',
'#define BASIC_CONSTRAINTS_new GRPC_SHADOW_BASIC_CONSTRAINTS_new',
'#define beeu_mod_inverse_vartime GRPC_SHADOW_beeu_mod_inverse_vartime',
'#define BIO_append_filename GRPC_SHADOW_BIO_append_filename',
'#define BIO_callback_ctrl GRPC_SHADOW_BIO_callback_ctrl',
'#define BIO_clear_flags GRPC_SHADOW_BIO_clear_flags',
'#define BIO_clear_retry_flags GRPC_SHADOW_BIO_clear_retry_flags',
'#define bio_clear_socket_error GRPC_SHADOW_bio_clear_socket_error',
'#define BIO_copy_next_retry GRPC_SHADOW_BIO_copy_next_retry',
'#define BIO_ctrl GRPC_SHADOW_BIO_ctrl',
'#define BIO_ctrl_get_read_request GRPC_SHADOW_BIO_ctrl_get_read_request',
'#define BIO_ctrl_get_write_guarantee GRPC_SHADOW_BIO_ctrl_get_write_guarantee',
'#define BIO_ctrl_pending GRPC_SHADOW_BIO_ctrl_pending',
'#define BIO_do_connect GRPC_SHADOW_BIO_do_connect',
'#define BIO_eof GRPC_SHADOW_BIO_eof',
'#define bio_fd_should_retry GRPC_SHADOW_bio_fd_should_retry',
'#define BIO_find_type GRPC_SHADOW_BIO_find_type',
'#define BIO_flush GRPC_SHADOW_BIO_flush',
'#define BIO_free GRPC_SHADOW_BIO_free',
'#define BIO_free_all GRPC_SHADOW_BIO_free_all',
'#define BIO_f_ssl GRPC_SHADOW_BIO_f_ssl',
'#define BIO_get_data GRPC_SHADOW_BIO_get_data',
'#define BIO_get_fd GRPC_SHADOW_BIO_get_fd',
'#define BIO_get_fp GRPC_SHADOW_BIO_get_fp',
'#define BIO_get_init GRPC_SHADOW_BIO_get_init',
'#define BIO_get_mem_data GRPC_SHADOW_BIO_get_mem_data',
'#define BIO_get_mem_ptr GRPC_SHADOW_BIO_get_mem_ptr',
'#define BIO_get_new_index GRPC_SHADOW_BIO_get_new_index',
'#define BIO_get_retry_flags GRPC_SHADOW_BIO_get_retry_flags',
'#define BIO_get_retry_reason GRPC_SHADOW_BIO_get_retry_reason',
'#define BIO_gets GRPC_SHADOW_BIO_gets',
'#define BIO_get_shutdown GRPC_SHADOW_BIO_get_shutdown',
'#define BIO_hexdump GRPC_SHADOW_BIO_hexdump',
'#define BIO_indent GRPC_SHADOW_BIO_indent',
'#define BIO_int_ctrl GRPC_SHADOW_BIO_int_ctrl',
'#define bio_ip_and_port_to_socket_and_addr GRPC_SHADOW_bio_ip_and_port_to_socket_and_addr',
'#define BIO_mem_contents GRPC_SHADOW_BIO_mem_contents',
'#define BIO_meth_free GRPC_SHADOW_BIO_meth_free',
'#define BIO_meth_new GRPC_SHADOW_BIO_meth_new',
'#define BIO_method_type GRPC_SHADOW_BIO_method_type',
'#define BIO_meth_set_create GRPC_SHADOW_BIO_meth_set_create',
'#define BIO_meth_set_ctrl GRPC_SHADOW_BIO_meth_set_ctrl',
'#define BIO_meth_set_destroy GRPC_SHADOW_BIO_meth_set_destroy',
'#define BIO_meth_set_gets GRPC_SHADOW_BIO_meth_set_gets',
'#define BIO_meth_set_puts GRPC_SHADOW_BIO_meth_set_puts',
'#define BIO_meth_set_read GRPC_SHADOW_BIO_meth_set_read',
'#define BIO_meth_set_write GRPC_SHADOW_BIO_meth_set_write',
'#define BIO_new GRPC_SHADOW_BIO_new',
'#define BIO_new_bio_pair GRPC_SHADOW_BIO_new_bio_pair',
'#define BIO_new_connect GRPC_SHADOW_BIO_new_connect',
'#define BIO_new_fd GRPC_SHADOW_BIO_new_fd',
'#define BIO_new_file GRPC_SHADOW_BIO_new_file',
'#define BIO_new_fp GRPC_SHADOW_BIO_new_fp',
'#define BIO_new_mem_buf GRPC_SHADOW_BIO_new_mem_buf',
'#define BIO_new_socket GRPC_SHADOW_BIO_new_socket',
'#define BIO_next GRPC_SHADOW_BIO_next',
'#define BIO_number_read GRPC_SHADOW_BIO_number_read',
'#define BIO_number_written GRPC_SHADOW_BIO_number_written',
'#define BIO_pending GRPC_SHADOW_BIO_pending',
'#define BIO_pop GRPC_SHADOW_BIO_pop',
'#define BIO_printf GRPC_SHADOW_BIO_printf',
'#define BIO_ptr_ctrl GRPC_SHADOW_BIO_ptr_ctrl',
'#define BIO_push GRPC_SHADOW_BIO_push',
'#define BIO_puts GRPC_SHADOW_BIO_puts',
'#define BIO_read GRPC_SHADOW_BIO_read',
'#define BIO_read_asn1 GRPC_SHADOW_BIO_read_asn1',
'#define BIO_read_filename GRPC_SHADOW_BIO_read_filename',
'#define BIO_reset GRPC_SHADOW_BIO_reset',
'#define BIO_rw_filename GRPC_SHADOW_BIO_rw_filename',
'#define BIO_s_connect GRPC_SHADOW_BIO_s_connect',
'#define BIO_set_close GRPC_SHADOW_BIO_set_close',
'#define BIO_set_conn_hostname GRPC_SHADOW_BIO_set_conn_hostname',
'#define BIO_set_conn_int_port GRPC_SHADOW_BIO_set_conn_int_port',
'#define BIO_set_conn_port GRPC_SHADOW_BIO_set_conn_port',
'#define BIO_set_data GRPC_SHADOW_BIO_set_data',
'#define BIO_set_fd GRPC_SHADOW_BIO_set_fd',
'#define BIO_set_flags GRPC_SHADOW_BIO_set_flags',
'#define BIO_set_fp GRPC_SHADOW_BIO_set_fp',
'#define BIO_set_init GRPC_SHADOW_BIO_set_init',
'#define BIO_set_mem_buf GRPC_SHADOW_BIO_set_mem_buf',
'#define BIO_set_mem_eof_return GRPC_SHADOW_BIO_set_mem_eof_return',
'#define BIO_set_nbio GRPC_SHADOW_BIO_set_nbio',
'#define BIO_set_retry_read GRPC_SHADOW_BIO_set_retry_read',
'#define BIO_set_retry_special GRPC_SHADOW_BIO_set_retry_special',
'#define BIO_set_retry_write GRPC_SHADOW_BIO_set_retry_write',
'#define BIO_set_shutdown GRPC_SHADOW_BIO_set_shutdown',
'#define BIO_set_ssl GRPC_SHADOW_BIO_set_ssl',
'#define BIO_set_write_buffer_size GRPC_SHADOW_BIO_set_write_buffer_size',
'#define BIO_s_fd GRPC_SHADOW_BIO_s_fd',
'#define BIO_s_file GRPC_SHADOW_BIO_s_file',
'#define BIO_should_io_special GRPC_SHADOW_BIO_should_io_special',
'#define BIO_should_read GRPC_SHADOW_BIO_should_read',
'#define BIO_should_retry GRPC_SHADOW_BIO_should_retry',
'#define BIO_should_write GRPC_SHADOW_BIO_should_write',
'#define BIO_shutdown_wr GRPC_SHADOW_BIO_shutdown_wr',
'#define BIO_s_mem GRPC_SHADOW_BIO_s_mem',
'#define BIO_snprintf GRPC_SHADOW_BIO_snprintf',
'#define bio_sock_error GRPC_SHADOW_bio_sock_error',
'#define bio_socket_nbio GRPC_SHADOW_bio_socket_nbio',
'#define BIO_s_socket GRPC_SHADOW_BIO_s_socket',
'#define BIO_test_flags GRPC_SHADOW_BIO_test_flags',
'#define BIO_up_ref GRPC_SHADOW_BIO_up_ref',
'#define BIO_vfree GRPC_SHADOW_BIO_vfree',
'#define BIO_vsnprintf GRPC_SHADOW_BIO_vsnprintf',
'#define BIO_wpending GRPC_SHADOW_BIO_wpending',
'#define BIO_write GRPC_SHADOW_BIO_write',
'#define BIO_write_all GRPC_SHADOW_BIO_write_all',
'#define BIO_write_filename GRPC_SHADOW_BIO_write_filename',
'#define BN_abs_is_word GRPC_SHADOW_BN_abs_is_word',
'#define bn_abs_sub_consttime GRPC_SHADOW_bn_abs_sub_consttime',
'#define BN_add GRPC_SHADOW_BN_add',
'#define BN_add_word GRPC_SHADOW_BN_add_word',
'#define bn_add_words GRPC_SHADOW_bn_add_words',
'#define BN_asc2bn GRPC_SHADOW_BN_asc2bn',
'#define BN_bin2bn GRPC_SHADOW_BN_bin2bn',
'#define BN_BLINDING_convert GRPC_SHADOW_BN_BLINDING_convert',
'#define BN_BLINDING_free GRPC_SHADOW_BN_BLINDING_free',
'#define BN_BLINDING_invert GRPC_SHADOW_BN_BLINDING_invert',
'#define BN_BLINDING_new GRPC_SHADOW_BN_BLINDING_new',
'#define BN_bn2bin GRPC_SHADOW_BN_bn2bin',
'#define BN_bn2binpad GRPC_SHADOW_BN_bn2binpad',
'#define BN_bn2bin_padded GRPC_SHADOW_BN_bn2bin_padded',
'#define BN_bn2cbb_padded GRPC_SHADOW_BN_bn2cbb_padded',
'#define BN_bn2dec GRPC_SHADOW_BN_bn2dec',
'#define BN_bn2hex GRPC_SHADOW_BN_bn2hex',
'#define BN_bn2le_padded GRPC_SHADOW_BN_bn2le_padded',
'#define BN_bn2mpi GRPC_SHADOW_BN_bn2mpi',
'#define BN_clear GRPC_SHADOW_BN_clear',
'#define BN_clear_bit GRPC_SHADOW_BN_clear_bit',
'#define BN_clear_free GRPC_SHADOW_BN_clear_free',
'#define BN_cmp GRPC_SHADOW_BN_cmp',
'#define BN_cmp_word GRPC_SHADOW_BN_cmp_word',
'#define BN_copy GRPC_SHADOW_BN_copy',
'#define bn_copy_words GRPC_SHADOW_bn_copy_words',
'#define BN_count_low_zero_bits GRPC_SHADOW_BN_count_low_zero_bits',
'#define BN_CTX_end GRPC_SHADOW_BN_CTX_end',
'#define BN_CTX_free GRPC_SHADOW_BN_CTX_free',
'#define BN_CTX_get GRPC_SHADOW_BN_CTX_get',
'#define BN_CTX_new GRPC_SHADOW_BN_CTX_new',
'#define BN_CTX_start GRPC_SHADOW_BN_CTX_start',
'#define BN_dec2bn GRPC_SHADOW_BN_dec2bn',
'#define BN_div GRPC_SHADOW_BN_div',
'#define bn_div_consttime GRPC_SHADOW_bn_div_consttime',
'#define BN_div_word GRPC_SHADOW_BN_div_word',
'#define BN_dup GRPC_SHADOW_BN_dup',
'#define BN_enhanced_miller_rabin_primality_test GRPC_SHADOW_BN_enhanced_miller_rabin_primality_test',
'#define BN_equal_consttime GRPC_SHADOW_BN_equal_consttime',
'#define BN_exp GRPC_SHADOW_BN_exp',
'#define bn_expand GRPC_SHADOW_bn_expand',
'#define bn_fits_in_words GRPC_SHADOW_bn_fits_in_words',
'#define BN_free GRPC_SHADOW_BN_free',
'#define bn_from_montgomery GRPC_SHADOW_bn_from_montgomery',
'#define BN_from_montgomery GRPC_SHADOW_BN_from_montgomery',
'#define bn_from_montgomery_small GRPC_SHADOW_bn_from_montgomery_small',
'#define bn_gather5 GRPC_SHADOW_bn_gather5',
'#define BN_gcd GRPC_SHADOW_BN_gcd',
'#define BN_GENCB_call GRPC_SHADOW_BN_GENCB_call',
'#define BN_GENCB_set GRPC_SHADOW_BN_GENCB_set',
'#define BN_generate_prime_ex GRPC_SHADOW_BN_generate_prime_ex',
'#define BN_get_rfc3526_prime_1536 GRPC_SHADOW_BN_get_rfc3526_prime_1536',
'#define BN_get_u64 GRPC_SHADOW_BN_get_u64',
'#define BN_get_word GRPC_SHADOW_BN_get_word',
'#define BN_hex2bn GRPC_SHADOW_BN_hex2bn',
'#define BN_init GRPC_SHADOW_BN_init',
'#define bn_in_range_words GRPC_SHADOW_bn_in_range_words',
'#define BN_is_bit_set GRPC_SHADOW_BN_is_bit_set',
'#define bn_is_bit_set_words GRPC_SHADOW_bn_is_bit_set_words',
'#define BN_is_negative GRPC_SHADOW_BN_is_negative',
'#define BN_is_odd GRPC_SHADOW_BN_is_odd',
'#define BN_is_one GRPC_SHADOW_BN_is_one',
'#define BN_is_pow2 GRPC_SHADOW_BN_is_pow2',
'#define BN_is_prime_ex GRPC_SHADOW_BN_is_prime_ex',
'#define BN_is_prime_fasttest_ex GRPC_SHADOW_BN_is_prime_fasttest_ex',
'#define bn_is_relatively_prime GRPC_SHADOW_bn_is_relatively_prime',
'#define BN_is_word GRPC_SHADOW_BN_is_word',
'#define BN_is_zero GRPC_SHADOW_BN_is_zero',
'#define bn_jacobi GRPC_SHADOW_bn_jacobi',
'#define bn_lcm_consttime GRPC_SHADOW_bn_lcm_consttime',
'#define BN_le2bn GRPC_SHADOW_BN_le2bn',
'#define bn_less_than_montgomery_R GRPC_SHADOW_bn_less_than_montgomery_R',
'#define bn_less_than_words GRPC_SHADOW_bn_less_than_words',
'#define BN_lshift GRPC_SHADOW_BN_lshift',
'#define BN_lshift1 GRPC_SHADOW_BN_lshift1',
'#define BN_marshal_asn1 GRPC_SHADOW_BN_marshal_asn1',
'#define BN_mask_bits GRPC_SHADOW_BN_mask_bits',
'#define bn_miller_rabin_init GRPC_SHADOW_bn_miller_rabin_init',
'#define bn_miller_rabin_iteration GRPC_SHADOW_bn_miller_rabin_iteration',
'#define bn_minimal_width GRPC_SHADOW_bn_minimal_width',
'#define BN_mod_add GRPC_SHADOW_BN_mod_add',
'#define bn_mod_add_consttime GRPC_SHADOW_bn_mod_add_consttime',
'#define BN_mod_add_quick GRPC_SHADOW_BN_mod_add_quick',
'#define bn_mod_add_words GRPC_SHADOW_bn_mod_add_words',
'#define BN_mod_exp GRPC_SHADOW_BN_mod_exp',
'#define BN_mod_exp2_mont GRPC_SHADOW_BN_mod_exp2_mont',
'#define bn_mod_exp_base_2_consttime GRPC_SHADOW_bn_mod_exp_base_2_consttime',
'#define BN_mod_exp_mont GRPC_SHADOW_BN_mod_exp_mont',
'#define BN_mod_exp_mont_consttime GRPC_SHADOW_BN_mod_exp_mont_consttime',
'#define bn_mod_exp_mont_small GRPC_SHADOW_bn_mod_exp_mont_small',
'#define BN_mod_exp_mont_word GRPC_SHADOW_BN_mod_exp_mont_word',
'#define BN_mod_inverse GRPC_SHADOW_BN_mod_inverse',
'#define BN_mod_inverse_blinded GRPC_SHADOW_BN_mod_inverse_blinded',
'#define bn_mod_inverse_consttime GRPC_SHADOW_bn_mod_inverse_consttime',
'#define BN_mod_inverse_odd GRPC_SHADOW_BN_mod_inverse_odd',
'#define bn_mod_inverse_prime GRPC_SHADOW_bn_mod_inverse_prime',
'#define bn_mod_inverse_prime_mont_small GRPC_SHADOW_bn_mod_inverse_prime_mont_small',
'#define bn_mod_inverse_secret_prime GRPC_SHADOW_bn_mod_inverse_secret_prime',
'#define BN_mod_lshift GRPC_SHADOW_BN_mod_lshift',
'#define BN_mod_lshift1 GRPC_SHADOW_BN_mod_lshift1',
'#define bn_mod_lshift1_consttime GRPC_SHADOW_bn_mod_lshift1_consttime',
'#define BN_mod_lshift1_quick GRPC_SHADOW_BN_mod_lshift1_quick',
'#define bn_mod_lshift_consttime GRPC_SHADOW_bn_mod_lshift_consttime',
'#define BN_mod_lshift_quick GRPC_SHADOW_BN_mod_lshift_quick',
'#define BN_mod_mul GRPC_SHADOW_BN_mod_mul',
'#define BN_mod_mul_montgomery GRPC_SHADOW_BN_mod_mul_montgomery',
'#define bn_mod_mul_montgomery_small GRPC_SHADOW_bn_mod_mul_montgomery_small',
'#define BN_mod_pow2 GRPC_SHADOW_BN_mod_pow2',
'#define BN_mod_sqr GRPC_SHADOW_BN_mod_sqr',
'#define BN_mod_sqrt GRPC_SHADOW_BN_mod_sqrt',
'#define BN_mod_sub GRPC_SHADOW_BN_mod_sub',
'#define bn_mod_sub_consttime GRPC_SHADOW_bn_mod_sub_consttime',
'#define BN_mod_sub_quick GRPC_SHADOW_BN_mod_sub_quick',
'#define bn_mod_sub_words GRPC_SHADOW_bn_mod_sub_words',
'#define bn_mod_u16_consttime GRPC_SHADOW_bn_mod_u16_consttime',
'#define BN_mod_word GRPC_SHADOW_BN_mod_word',
'#define BN_MONT_CTX_copy GRPC_SHADOW_BN_MONT_CTX_copy',
'#define BN_MONT_CTX_free GRPC_SHADOW_BN_MONT_CTX_free',
'#define BN_MONT_CTX_new GRPC_SHADOW_BN_MONT_CTX_new',
'#define BN_MONT_CTX_new_consttime GRPC_SHADOW_BN_MONT_CTX_new_consttime',
'#define BN_MONT_CTX_new_for_modulus GRPC_SHADOW_BN_MONT_CTX_new_for_modulus',
'#define BN_MONT_CTX_set GRPC_SHADOW_BN_MONT_CTX_set',
'#define BN_MONT_CTX_set_locked GRPC_SHADOW_BN_MONT_CTX_set_locked',
'#define bn_mont_n0 GRPC_SHADOW_bn_mont_n0',
'#define BN_mpi2bn GRPC_SHADOW_BN_mpi2bn',
'#define BN_mul GRPC_SHADOW_BN_mul',
'#define bn_mul_add_words GRPC_SHADOW_bn_mul_add_words',
'#define bn_mul_comba4 GRPC_SHADOW_bn_mul_comba4',
'#define bn_mul_comba8 GRPC_SHADOW_bn_mul_comba8',
'#define bn_mul_consttime GRPC_SHADOW_bn_mul_consttime',
'#define bn_mul_mont GRPC_SHADOW_bn_mul_mont',
'#define bn_mul_mont_gather5 GRPC_SHADOW_bn_mul_mont_gather5',
'#define bn_mul_small GRPC_SHADOW_bn_mul_small',
'#define BN_mul_word GRPC_SHADOW_BN_mul_word',
'#define bn_mul_words GRPC_SHADOW_bn_mul_words',
'#define BN_new GRPC_SHADOW_BN_new',
'#define BN_nnmod GRPC_SHADOW_BN_nnmod',
'#define BN_nnmod_pow2 GRPC_SHADOW_BN_nnmod_pow2',
'#define BN_num_bits GRPC_SHADOW_BN_num_bits',
'#define BN_num_bits_word GRPC_SHADOW_BN_num_bits_word',
'#define BN_num_bytes GRPC_SHADOW_BN_num_bytes',
'#define bn_odd_number_is_obviously_composite GRPC_SHADOW_bn_odd_number_is_obviously_composite',
'#define BN_one GRPC_SHADOW_BN_one',
'#define bn_one_to_montgomery GRPC_SHADOW_bn_one_to_montgomery',
'#define BN_parse_asn1_unsigned GRPC_SHADOW_BN_parse_asn1_unsigned',
'#define bn_power5 GRPC_SHADOW_bn_power5',
'#define BN_primality_test GRPC_SHADOW_BN_primality_test',
'#define BN_print GRPC_SHADOW_BN_print',
'#define BN_print_fp GRPC_SHADOW_BN_print_fp',
'#define BN_pseudo_rand GRPC_SHADOW_BN_pseudo_rand',
'#define BN_pseudo_rand_range GRPC_SHADOW_BN_pseudo_rand_range',
'#define BN_rand GRPC_SHADOW_BN_rand',
'#define BN_rand_range GRPC_SHADOW_BN_rand_range',
'#define BN_rand_range_ex GRPC_SHADOW_BN_rand_range_ex',
'#define bn_rand_range_words GRPC_SHADOW_bn_rand_range_words',
'#define bn_rand_secret_range GRPC_SHADOW_bn_rand_secret_range',
'#define bn_reduce_once GRPC_SHADOW_bn_reduce_once',
'#define bn_reduce_once_in_place GRPC_SHADOW_bn_reduce_once_in_place',
'#define bn_resize_words GRPC_SHADOW_bn_resize_words',
'#define BN_rshift GRPC_SHADOW_BN_rshift',
'#define BN_rshift1 GRPC_SHADOW_BN_rshift1',
'#define bn_rshift1_words GRPC_SHADOW_bn_rshift1_words',
'#define bn_rshift_secret_shift GRPC_SHADOW_bn_rshift_secret_shift',
'#define bn_rshift_words GRPC_SHADOW_bn_rshift_words',
'#define bn_scatter5 GRPC_SHADOW_bn_scatter5',
'#define bn_select_words GRPC_SHADOW_bn_select_words',
'#define BN_set_bit GRPC_SHADOW_BN_set_bit',
'#define bn_set_minimal_width GRPC_SHADOW_bn_set_minimal_width',
'#define BN_set_negative GRPC_SHADOW_BN_set_negative',
'#define BN_set_u64 GRPC_SHADOW_BN_set_u64',
'#define BN_set_word GRPC_SHADOW_BN_set_word',
'#define bn_set_words GRPC_SHADOW_bn_set_words',
'#define BN_sqr GRPC_SHADOW_BN_sqr',
'#define bn_sqr8x_internal GRPC_SHADOW_bn_sqr8x_internal',
'#define bn_sqr_comba4 GRPC_SHADOW_bn_sqr_comba4',
'#define bn_sqr_comba8 GRPC_SHADOW_bn_sqr_comba8',
'#define bn_sqr_consttime GRPC_SHADOW_bn_sqr_consttime',
'#define bn_sqr_small GRPC_SHADOW_bn_sqr_small',
'#define BN_sqrt GRPC_SHADOW_BN_sqrt',
'#define bn_sqr_words GRPC_SHADOW_bn_sqr_words',
'#define bn_sqrx8x_internal GRPC_SHADOW_bn_sqrx8x_internal',
'#define BN_sub GRPC_SHADOW_BN_sub',
'#define BN_sub_word GRPC_SHADOW_BN_sub_word',
'#define bn_sub_words GRPC_SHADOW_bn_sub_words',
'#define BN_to_ASN1_ENUMERATED GRPC_SHADOW_BN_to_ASN1_ENUMERATED',
'#define BN_to_ASN1_INTEGER GRPC_SHADOW_BN_to_ASN1_INTEGER',
'#define BN_to_montgomery GRPC_SHADOW_BN_to_montgomery',
'#define bn_to_montgomery_small GRPC_SHADOW_bn_to_montgomery_small',
'#define BN_uadd GRPC_SHADOW_BN_uadd',
'#define bn_uadd_consttime GRPC_SHADOW_bn_uadd_consttime',
'#define BN_ucmp GRPC_SHADOW_BN_ucmp',
'#define BN_usub GRPC_SHADOW_BN_usub',
'#define bn_usub_consttime GRPC_SHADOW_bn_usub_consttime',
'#define BN_value_one GRPC_SHADOW_BN_value_one',
'#define bn_wexpand GRPC_SHADOW_bn_wexpand',
'#define BN_zero GRPC_SHADOW_BN_zero',
'#define boringssl_fips_self_test GRPC_SHADOW_boringssl_fips_self_test',
'#define BORINGSSL_self_test GRPC_SHADOW_BORINGSSL_self_test',
'#define BUF_MEM_append GRPC_SHADOW_BUF_MEM_append',
'#define BUF_memdup GRPC_SHADOW_BUF_memdup',
'#define BUF_MEM_free GRPC_SHADOW_BUF_MEM_free',
'#define BUF_MEM_grow GRPC_SHADOW_BUF_MEM_grow',
'#define BUF_MEM_grow_clean GRPC_SHADOW_BUF_MEM_grow_clean',
'#define BUF_MEM_new GRPC_SHADOW_BUF_MEM_new',
'#define BUF_MEM_reserve GRPC_SHADOW_BUF_MEM_reserve',
'#define BUF_strdup GRPC_SHADOW_BUF_strdup',
'#define BUF_strlcat GRPC_SHADOW_BUF_strlcat',
'#define BUF_strlcpy GRPC_SHADOW_BUF_strlcpy',
'#define BUF_strndup GRPC_SHADOW_BUF_strndup',
'#define BUF_strnlen GRPC_SHADOW_BUF_strnlen',
'#define c2i_ASN1_BIT_STRING GRPC_SHADOW_c2i_ASN1_BIT_STRING',
'#define c2i_ASN1_INTEGER GRPC_SHADOW_c2i_ASN1_INTEGER',
'#define c2i_ASN1_OBJECT GRPC_SHADOW_c2i_ASN1_OBJECT',
'#define CBB_add_asn1 GRPC_SHADOW_CBB_add_asn1',
'#define CBB_add_asn1_bool GRPC_SHADOW_CBB_add_asn1_bool',
'#define CBB_add_asn1_int64 GRPC_SHADOW_CBB_add_asn1_int64',
'#define CBB_add_asn1_octet_string GRPC_SHADOW_CBB_add_asn1_octet_string',
'#define CBB_add_asn1_oid_from_text GRPC_SHADOW_CBB_add_asn1_oid_from_text',
'#define CBB_add_asn1_uint64 GRPC_SHADOW_CBB_add_asn1_uint64',
'#define CBB_add_bytes GRPC_SHADOW_CBB_add_bytes',
'#define cbb_add_latin1 GRPC_SHADOW_cbb_add_latin1',
'#define CBB_add_space GRPC_SHADOW_CBB_add_space',
'#define CBB_add_u16 GRPC_SHADOW_CBB_add_u16',
'#define CBB_add_u16le GRPC_SHADOW_CBB_add_u16le',
'#define CBB_add_u16_length_prefixed GRPC_SHADOW_CBB_add_u16_length_prefixed',
'#define CBB_add_u24 GRPC_SHADOW_CBB_add_u24',
'#define CBB_add_u24_length_prefixed GRPC_SHADOW_CBB_add_u24_length_prefixed',
'#define CBB_add_u32 GRPC_SHADOW_CBB_add_u32',
'#define CBB_add_u32le GRPC_SHADOW_CBB_add_u32le',
'#define CBB_add_u64 GRPC_SHADOW_CBB_add_u64',
'#define CBB_add_u64le GRPC_SHADOW_CBB_add_u64le',
'#define CBB_add_u8 GRPC_SHADOW_CBB_add_u8',
'#define CBB_add_u8_length_prefixed GRPC_SHADOW_CBB_add_u8_length_prefixed',
'#define cbb_add_ucs2_be GRPC_SHADOW_cbb_add_ucs2_be',
'#define cbb_add_utf32_be GRPC_SHADOW_cbb_add_utf32_be',
'#define cbb_add_utf8 GRPC_SHADOW_cbb_add_utf8',
'#define CBB_cleanup GRPC_SHADOW_CBB_cleanup',
'#define CBB_data GRPC_SHADOW_CBB_data',
'#define CBB_did_write GRPC_SHADOW_CBB_did_write',
'#define CBB_discard_child GRPC_SHADOW_CBB_discard_child',
'#define CBB_finish GRPC_SHADOW_CBB_finish',
'#define CBB_finish_i2d GRPC_SHADOW_CBB_finish_i2d',
'#define CBB_flush GRPC_SHADOW_CBB_flush',
'#define CBB_flush_asn1_set_of GRPC_SHADOW_CBB_flush_asn1_set_of',
'#define cbb_get_utf8_len GRPC_SHADOW_cbb_get_utf8_len',
'#define CBB_init GRPC_SHADOW_CBB_init',
'#define CBB_init_fixed GRPC_SHADOW_CBB_init_fixed',
'#define CBB_len GRPC_SHADOW_CBB_len',
'#define CBB_reserve GRPC_SHADOW_CBB_reserve',
'#define CBB_zero GRPC_SHADOW_CBB_zero',
'#define CBS_asn1_ber_to_der GRPC_SHADOW_CBS_asn1_ber_to_der',
'#define CBS_asn1_bitstring_has_bit GRPC_SHADOW_CBS_asn1_bitstring_has_bit',
'#define CBS_asn1_oid_to_text GRPC_SHADOW_CBS_asn1_oid_to_text',
'#define CBS_contains_zero_byte GRPC_SHADOW_CBS_contains_zero_byte',
'#define CBS_copy_bytes GRPC_SHADOW_CBS_copy_bytes',
'#define CBS_data GRPC_SHADOW_CBS_data',
'#define CBS_get_any_asn1 GRPC_SHADOW_CBS_get_any_asn1',
'#define CBS_get_any_asn1_element GRPC_SHADOW_CBS_get_any_asn1_element',
'#define CBS_get_any_ber_asn1_element GRPC_SHADOW_CBS_get_any_ber_asn1_element',
'#define CBS_get_asn1 GRPC_SHADOW_CBS_get_asn1',
'#define CBS_get_asn1_bool GRPC_SHADOW_CBS_get_asn1_bool',
'#define CBS_get_asn1_element GRPC_SHADOW_CBS_get_asn1_element',
'#define CBS_get_asn1_implicit_string GRPC_SHADOW_CBS_get_asn1_implicit_string',
'#define CBS_get_asn1_int64 GRPC_SHADOW_CBS_get_asn1_int64',
'#define CBS_get_asn1_uint64 GRPC_SHADOW_CBS_get_asn1_uint64',
'#define CBS_get_bytes GRPC_SHADOW_CBS_get_bytes',
'#define CBS_get_last_u8 GRPC_SHADOW_CBS_get_last_u8',
'#define cbs_get_latin1 GRPC_SHADOW_cbs_get_latin1',
'#define CBS_get_optional_asn1 GRPC_SHADOW_CBS_get_optional_asn1',
'#define CBS_get_optional_asn1_bool GRPC_SHADOW_CBS_get_optional_asn1_bool',
'#define CBS_get_optional_asn1_octet_string GRPC_SHADOW_CBS_get_optional_asn1_octet_string',
'#define CBS_get_optional_asn1_uint64 GRPC_SHADOW_CBS_get_optional_asn1_uint64',
'#define CBS_get_u16 GRPC_SHADOW_CBS_get_u16',
'#define CBS_get_u16le GRPC_SHADOW_CBS_get_u16le',
'#define CBS_get_u16_length_prefixed GRPC_SHADOW_CBS_get_u16_length_prefixed',
'#define CBS_get_u24 GRPC_SHADOW_CBS_get_u24',
'#define CBS_get_u24_length_prefixed GRPC_SHADOW_CBS_get_u24_length_prefixed',
'#define CBS_get_u32 GRPC_SHADOW_CBS_get_u32',
'#define CBS_get_u32le GRPC_SHADOW_CBS_get_u32le',
'#define CBS_get_u64 GRPC_SHADOW_CBS_get_u64',
'#define CBS_get_u64le GRPC_SHADOW_CBS_get_u64le',
'#define CBS_get_u8 GRPC_SHADOW_CBS_get_u8',
'#define CBS_get_u8_length_prefixed GRPC_SHADOW_CBS_get_u8_length_prefixed',
'#define cbs_get_ucs2_be GRPC_SHADOW_cbs_get_ucs2_be',
'#define cbs_get_utf32_be GRPC_SHADOW_cbs_get_utf32_be',
'#define cbs_get_utf8 GRPC_SHADOW_cbs_get_utf8',
'#define CBS_init GRPC_SHADOW_CBS_init',
'#define CBS_is_valid_asn1_bitstring GRPC_SHADOW_CBS_is_valid_asn1_bitstring',
'#define CBS_len GRPC_SHADOW_CBS_len',
'#define CBS_mem_equal GRPC_SHADOW_CBS_mem_equal',
'#define CBS_peek_asn1_tag GRPC_SHADOW_CBS_peek_asn1_tag',
'#define CBS_skip GRPC_SHADOW_CBS_skip',
'#define CBS_stow GRPC_SHADOW_CBS_stow',
'#define CBS_strdup GRPC_SHADOW_CBS_strdup',
'#define CERTIFICATEPOLICIES_free GRPC_SHADOW_CERTIFICATEPOLICIES_free',
'#define CERTIFICATEPOLICIES_it GRPC_SHADOW_CERTIFICATEPOLICIES_it',
'#define CERTIFICATEPOLICIES_new GRPC_SHADOW_CERTIFICATEPOLICIES_new',
'#define ChaCha20_ctr32 GRPC_SHADOW_ChaCha20_ctr32',
'#define chacha20_poly1305_open GRPC_SHADOW_chacha20_poly1305_open',
'#define chacha20_poly1305_seal GRPC_SHADOW_chacha20_poly1305_seal',
'#define CMAC_CTX_copy GRPC_SHADOW_CMAC_CTX_copy',
'#define CMAC_CTX_free GRPC_SHADOW_CMAC_CTX_free',
'#define CMAC_CTX_new GRPC_SHADOW_CMAC_CTX_new',
'#define CMAC_Final GRPC_SHADOW_CMAC_Final',
'#define CMAC_Init GRPC_SHADOW_CMAC_Init',
'#define CMAC_Reset GRPC_SHADOW_CMAC_Reset',
'#define CMAC_Update GRPC_SHADOW_CMAC_Update',
'#define CONF_modules_free GRPC_SHADOW_CONF_modules_free',
'#define CONF_modules_load_file GRPC_SHADOW_CONF_modules_load_file',
'#define CONF_parse_list GRPC_SHADOW_CONF_parse_list',
'#define CONF_VALUE_new GRPC_SHADOW_CONF_VALUE_new',
'#define CRL_DIST_POINTS_free GRPC_SHADOW_CRL_DIST_POINTS_free',
'#define CRL_DIST_POINTS_it GRPC_SHADOW_CRL_DIST_POINTS_it',
'#define CRL_DIST_POINTS_new GRPC_SHADOW_CRL_DIST_POINTS_new',
'#define CRYPTO_BUFFER_alloc GRPC_SHADOW_CRYPTO_BUFFER_alloc',
'#define CRYPTO_BUFFER_data GRPC_SHADOW_CRYPTO_BUFFER_data',
'#define CRYPTO_BUFFER_free GRPC_SHADOW_CRYPTO_BUFFER_free',
'#define CRYPTO_BUFFER_init_CBS GRPC_SHADOW_CRYPTO_BUFFER_init_CBS',
'#define CRYPTO_BUFFER_len GRPC_SHADOW_CRYPTO_BUFFER_len',
'#define CRYPTO_BUFFER_new GRPC_SHADOW_CRYPTO_BUFFER_new',
'#define CRYPTO_BUFFER_new_from_CBS GRPC_SHADOW_CRYPTO_BUFFER_new_from_CBS',
'#define CRYPTO_BUFFER_POOL_free GRPC_SHADOW_CRYPTO_BUFFER_POOL_free',
'#define CRYPTO_BUFFER_POOL_new GRPC_SHADOW_CRYPTO_BUFFER_POOL_new',
'#define CRYPTO_BUFFER_up_ref GRPC_SHADOW_CRYPTO_BUFFER_up_ref',
'#define CRYPTO_cbc128_decrypt GRPC_SHADOW_CRYPTO_cbc128_decrypt',
'#define CRYPTO_cbc128_encrypt GRPC_SHADOW_CRYPTO_cbc128_encrypt',
'#define CRYPTO_cfb128_1_encrypt GRPC_SHADOW_CRYPTO_cfb128_1_encrypt',
'#define CRYPTO_cfb128_8_encrypt GRPC_SHADOW_CRYPTO_cfb128_8_encrypt',
'#define CRYPTO_cfb128_encrypt GRPC_SHADOW_CRYPTO_cfb128_encrypt',
'#define CRYPTO_chacha_20 GRPC_SHADOW_CRYPTO_chacha_20',
'#define CRYPTO_cleanup_all_ex_data GRPC_SHADOW_CRYPTO_cleanup_all_ex_data',
'#define CRYPTO_ctr128_encrypt GRPC_SHADOW_CRYPTO_ctr128_encrypt',
'#define CRYPTO_ctr128_encrypt_ctr32 GRPC_SHADOW_CRYPTO_ctr128_encrypt_ctr32',
'#define CRYPTO_free_ex_data GRPC_SHADOW_CRYPTO_free_ex_data',
'#define CRYPTO_gcm128_aad GRPC_SHADOW_CRYPTO_gcm128_aad',
'#define CRYPTO_gcm128_decrypt GRPC_SHADOW_CRYPTO_gcm128_decrypt',
'#define CRYPTO_gcm128_decrypt_ctr32 GRPC_SHADOW_CRYPTO_gcm128_decrypt_ctr32',
'#define CRYPTO_gcm128_encrypt GRPC_SHADOW_CRYPTO_gcm128_encrypt',
'#define CRYPTO_gcm128_encrypt_ctr32 GRPC_SHADOW_CRYPTO_gcm128_encrypt_ctr32',
'#define CRYPTO_gcm128_finish GRPC_SHADOW_CRYPTO_gcm128_finish',
'#define CRYPTO_gcm128_init_key GRPC_SHADOW_CRYPTO_gcm128_init_key',
'#define CRYPTO_gcm128_setiv GRPC_SHADOW_CRYPTO_gcm128_setiv',
'#define CRYPTO_gcm128_tag GRPC_SHADOW_CRYPTO_gcm128_tag',
'#define crypto_gcm_clmul_enabled GRPC_SHADOW_crypto_gcm_clmul_enabled',
'#define CRYPTO_get_dynlock_create_callback GRPC_SHADOW_CRYPTO_get_dynlock_create_callback',
'#define CRYPTO_get_dynlock_destroy_callback GRPC_SHADOW_CRYPTO_get_dynlock_destroy_callback',
'#define CRYPTO_get_dynlock_lock_callback GRPC_SHADOW_CRYPTO_get_dynlock_lock_callback',
'#define CRYPTO_get_ex_data GRPC_SHADOW_CRYPTO_get_ex_data',
'#define CRYPTO_get_ex_new_index GRPC_SHADOW_CRYPTO_get_ex_new_index',
'#define CRYPTO_get_locking_callback GRPC_SHADOW_CRYPTO_get_locking_callback',
'#define CRYPTO_get_lock_name GRPC_SHADOW_CRYPTO_get_lock_name',
'#define CRYPTO_get_thread_local GRPC_SHADOW_CRYPTO_get_thread_local',
'#define CRYPTO_ghash_init GRPC_SHADOW_CRYPTO_ghash_init',
'#define CRYPTO_has_asm GRPC_SHADOW_CRYPTO_has_asm',
'#define CRYPTO_hchacha20 GRPC_SHADOW_CRYPTO_hchacha20',
'#define CRYPTO_is_confidential_build GRPC_SHADOW_CRYPTO_is_confidential_build',
'#define CRYPTO_library_init GRPC_SHADOW_CRYPTO_library_init',
'#define CRYPTO_malloc_init GRPC_SHADOW_CRYPTO_malloc_init',
'#define CRYPTO_memcmp GRPC_SHADOW_CRYPTO_memcmp',
'#define CRYPTO_MUTEX_cleanup GRPC_SHADOW_CRYPTO_MUTEX_cleanup',
'#define CRYPTO_MUTEX_init GRPC_SHADOW_CRYPTO_MUTEX_init',
'#define CRYPTO_MUTEX_lock_read GRPC_SHADOW_CRYPTO_MUTEX_lock_read',
'#define CRYPTO_MUTEX_lock_write GRPC_SHADOW_CRYPTO_MUTEX_lock_write',
'#define CRYPTO_MUTEX_unlock_read GRPC_SHADOW_CRYPTO_MUTEX_unlock_read',
'#define CRYPTO_MUTEX_unlock_write GRPC_SHADOW_CRYPTO_MUTEX_unlock_write',
'#define CRYPTO_new_ex_data GRPC_SHADOW_CRYPTO_new_ex_data',
'#define CRYPTO_num_locks GRPC_SHADOW_CRYPTO_num_locks',
'#define CRYPTO_ofb128_encrypt GRPC_SHADOW_CRYPTO_ofb128_encrypt',
'#define CRYPTO_once GRPC_SHADOW_CRYPTO_once',
'#define CRYPTO_poly1305_finish GRPC_SHADOW_CRYPTO_poly1305_finish',
'#define CRYPTO_poly1305_init GRPC_SHADOW_CRYPTO_poly1305_init',
'#define CRYPTO_poly1305_update GRPC_SHADOW_CRYPTO_poly1305_update',
'#define CRYPTO_POLYVAL_finish GRPC_SHADOW_CRYPTO_POLYVAL_finish',
'#define CRYPTO_POLYVAL_init GRPC_SHADOW_CRYPTO_POLYVAL_init',
'#define CRYPTO_POLYVAL_update_blocks GRPC_SHADOW_CRYPTO_POLYVAL_update_blocks',
'#define CRYPTO_rdrand GRPC_SHADOW_CRYPTO_rdrand',
'#define CRYPTO_rdrand_multiple8_buf GRPC_SHADOW_CRYPTO_rdrand_multiple8_buf',
'#define CRYPTO_refcount_dec_and_test_zero GRPC_SHADOW_CRYPTO_refcount_dec_and_test_zero',
'#define CRYPTO_refcount_inc GRPC_SHADOW_CRYPTO_refcount_inc',
'#define CRYPTO_set_add_lock_callback GRPC_SHADOW_CRYPTO_set_add_lock_callback',
'#define CRYPTO_set_dynlock_create_callback GRPC_SHADOW_CRYPTO_set_dynlock_create_callback',
'#define CRYPTO_set_dynlock_destroy_callback GRPC_SHADOW_CRYPTO_set_dynlock_destroy_callback',
'#define CRYPTO_set_dynlock_lock_callback GRPC_SHADOW_CRYPTO_set_dynlock_lock_callback',
'#define CRYPTO_set_ex_data GRPC_SHADOW_CRYPTO_set_ex_data',
'#define CRYPTO_set_id_callback GRPC_SHADOW_CRYPTO_set_id_callback',
'#define CRYPTO_set_locking_callback GRPC_SHADOW_CRYPTO_set_locking_callback',
'#define CRYPTO_set_thread_local GRPC_SHADOW_CRYPTO_set_thread_local',
'#define CRYPTO_STATIC_MUTEX_lock_read GRPC_SHADOW_CRYPTO_STATIC_MUTEX_lock_read',
'#define CRYPTO_STATIC_MUTEX_lock_write GRPC_SHADOW_CRYPTO_STATIC_MUTEX_lock_write',