proxygen
TestUtil.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2017-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
17 
18 namespace wangle {
19 
20 const size_t kNumSessions = 3;
21 const size_t kSessionDataLen = 1060;
22 
23 // Faked but real raw session data.
24 const unsigned char kSessionData[kNumSessions][kSessionDataLen] = {
25  // Session 1
26  { 48, 130, 4, 32, 2, 1, 1, 2, 2, 3, 1, 4, 2, 0, 56, 4, 32, 83, 116, 16, 17,
27  57, 108, 197, 133, 94, 141, 239, 83, 184, 65, 171, 17, 90, 82, 17, 245,
28  146, 215, 220, 102, 13, 200, 155, 72, 85, 125, 138, 188, 4, 48, 69, 44, 55,
29  135, 168, 101, 191, 115, 0, 225, 79, 217, 91, 173, 24, 109, 228, 189, 39,
30  192, 112, 237, 37, 92, 27, 110, 49, 224, 110, 108, 96, 55, 131, 177, 124,
31  17, 55, 67, 217, 180, 36, 222, 143, 210, 15, 63, 221, 153, 161, 6, 2, 4,
32  83, 116, 16, 17, 162, 4, 2, 2, 1, 44, 163, 130, 3, 166, 48, 130, 3, 162,
33  48, 130, 2, 138, 2, 5, 17, 17, 17, 17, 24, 48, 13, 6, 9, 42, 134, 72, 134,
34  247, 13, 1, 1, 11, 5, 0, 48, 58, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85,
35  83, 49, 11, 48, 9, 6, 3, 85, 4, 8, 19, 2, 67, 65, 49, 17, 48, 15, 6, 3, 85,
36  4, 10, 19, 8, 70, 97, 99, 101, 98, 111, 111, 107, 49, 11, 48, 9, 6, 3, 85,
37  4, 3, 19, 2, 67, 65, 48, 30, 23, 13, 49, 52, 48, 52, 49, 54, 48, 57, 48,
38  55, 49, 54, 90, 23, 13, 49, 53, 48, 52, 49, 54, 48, 57, 48, 55, 49, 54, 90,
39  48, 91, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85, 83, 49, 11, 48, 9, 6, 3,
40  85, 4, 8, 19, 2, 85, 83, 49, 17, 48, 15, 6, 3, 85, 4, 10, 19, 8, 102, 97,
41  99, 101, 98, 111, 111, 107, 49, 17, 48, 15, 6, 3, 85, 4, 11, 19, 8, 102,
42  97, 99, 101, 98, 111, 111, 107, 49, 25, 48, 23, 6, 3, 85, 4, 3, 19, 16,
43  119, 119, 119, 46, 102, 97, 99, 101, 98, 111, 111, 107, 46, 99, 111, 109,
44  48, 130, 1, 183, 48, 130, 1, 44, 6, 7, 42, 134, 72, 206, 56, 4, 1, 48, 130,
45  1, 31, 2, 129, 129, 0, 253, 127, 83, 129, 29, 117, 18, 41, 82, 223, 74,
46  156, 46, 236, 228, 231, 246, 17, 183, 82, 60, 239, 68, 0, 195, 30, 63, 128,
47  182, 81, 38, 105, 69, 93, 64, 34, 81, 251, 89, 61, 141, 88, 250, 191, 197,
48  245, 186, 48, 246, 203, 155, 85, 108, 215, 129, 59, 128, 29, 52, 111, 242,
49  102, 96, 183, 107, 153, 80, 165, 164, 159, 159, 232, 4, 123, 16, 34, 194,
50  79, 187, 169, 215, 254, 183, 198, 27, 248, 59, 87, 231, 198, 168, 166, 21,
51  15, 4, 251, 131, 246, 211, 197, 30, 195, 2, 53, 84, 19, 90, 22, 145, 50,
52  246, 117, 243, 174, 43, 97, 215, 42, 239, 242, 34, 3, 25, 157, 209, 72, 1,
53  199, 2, 21, 0, 151, 96, 80, 143, 21, 35, 11, 204, 178, 146, 185, 130, 162,
54  235, 132, 11, 240, 88, 28, 245, 2, 129, 129, 0, 247, 225, 160, 133, 214,
55  155, 61, 222, 203, 188, 171, 92, 54, 184, 87, 185, 121, 148, 175, 187, 250,
56  58, 234, 130, 249, 87, 76, 11, 61, 7, 130, 103, 81, 89, 87, 142, 186, 212,
57  89, 79, 230, 113, 7, 16, 129, 128, 180, 73, 22, 113, 35, 232, 76, 40, 22,
58  19, 183, 207, 9, 50, 140, 200, 166, 225, 60, 22, 122, 139, 84, 124, 141,
59  40, 224, 163, 174, 30, 43, 179, 166, 117, 145, 110, 163, 127, 11, 250, 33,
60  53, 98, 241, 251, 98, 122, 1, 36, 59, 204, 164, 241, 190, 168, 81, 144,
61  137, 168, 131, 223, 225, 90, 229, 159, 6, 146, 139, 102, 94, 128, 123, 85,
62  37, 100, 1, 76, 59, 254, 207, 73, 42, 3, 129, 132, 0, 2, 129, 128, 90, 172,
63  11, 241, 173, 170, 216, 73, 212, 145, 255, 30, 26, 9, 15, 207, 43, 78, 66,
64  19, 239, 76, 26, 190, 227, 22, 242, 109, 46, 46, 175, 215, 254, 22, 160,
65  233, 31, 143, 255, 186, 226, 156, 111, 37, 178, 2, 80, 99, 156, 208, 19,
66  30, 145, 253, 152, 234, 26, 143, 231, 20, 150, 179, 116, 132, 203, 109,
67  223, 242, 208, 57, 177, 77, 163, 224, 210, 110, 60, 227, 221, 123, 5, 129,
68  238, 4, 83, 16, 48, 124, 84, 246, 98, 97, 176, 147, 187, 173, 198, 83, 102,
69  31, 57, 214, 219, 220, 58, 245, 208, 85, 27, 71, 192, 225, 91, 128, 128,
70  216, 116, 30, 45, 116, 67, 66, 185, 183, 215, 145, 219, 155, 48, 13, 6, 9,
71  42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 131, 39, 108,
72  45, 93, 90, 177, 99, 73, 210, 121, 4, 179, 90, 223, 73, 137, 74, 146, 142,
73  26, 230, 134, 5, 79, 159, 26, 82, 139, 69, 223, 55, 208, 181, 136, 250,
74  108, 223, 165, 235, 14, 116, 146, 235, 124, 63, 38, 150, 212, 236, 181, 52,
75  240, 136, 59, 12, 132, 162, 204, 202, 219, 72, 7, 254, 210, 109, 182, 249,
76  126, 61, 55, 37, 82, 169, 198, 234, 134, 85, 10, 98, 51, 232, 239, 92, 216,
77  107, 170, 94, 73, 171, 92, 55, 219, 8, 120, 154, 223, 88, 8, 135, 152, 101,
78  112, 184, 71, 37, 6, 238, 53, 233, 113, 227, 222, 248, 102, 161, 190, 78,
79  163, 170, 23, 48, 8, 222, 1, 30, 233, 251, 161, 246, 246, 90, 51, 151, 158,
80  60, 70, 93, 14, 121, 5, 181, 157, 8, 243, 211, 252, 95, 44, 201, 186, 80,
81  6, 55, 36, 54, 128, 87, 76, 1, 155, 152, 99, 92, 206, 105, 69, 90, 145, 50,
82  121, 14, 40, 70, 52, 217, 246, 244, 142, 176, 221, 202, 32, 78, 189, 229,
83  99, 91, 141, 81, 173, 112, 138, 251, 131, 255, 141, 3, 191, 68, 129, 235,
84  219, 57, 133, 241, 7, 53, 223, 50, 226, 88, 28, 157, 23, 110, 9, 237, 64,
85  67, 60, 77, 74, 110, 177, 130, 204, 41, 52, 57, 121, 103, 93, 154, 248,
86  114, 140, 163, 124, 227, 102, 186, 10, 220, 29, 2, 254, 147, 8, 121, 79, 8,
87  148, 127, 32, 175, 164, 2, 4, 0, 165, 3, 2, 1, 19, },
88 
89  // Session 2
90  { 48, 130, 4, 32, 2, 1, 1, 2, 2, 3, 1, 4, 2, 0, 56, 4, 32, 83, 116, 20, 234,
91  169, 155, 79, 215, 151, 164, 227, 219, 181, 70, 17, 183, 202, 177, 252, 12,
92  110, 80, 38, 213, 174, 138, 226, 40, 228, 196, 203, 211, 4, 48, 194, 187,
93  205, 1, 145, 36, 175, 197, 202, 233, 209, 23, 191, 235, 94, 55, 73, 32, 40,
94  166, 23, 153, 103, 249, 237, 103, 172, 110, 20, 165, 51, 92, 228, 186, 223,
95  146, 215, 4, 220, 18, 82, 244, 243, 133, 67, 232, 193, 23, 161, 6, 2, 4,
96  83, 116, 20, 235, 162, 4, 2, 2, 1, 44, 163, 130, 3, 166, 48, 130, 3, 162,
97  48, 130, 2, 138, 2, 5, 17, 17, 17, 17, 24, 48, 13, 6, 9, 42, 134, 72, 134,
98  247, 13, 1, 1, 11, 5, 0, 48, 58, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85,
99  83, 49, 11, 48, 9, 6, 3, 85, 4, 8, 19, 2, 67, 65, 49, 17, 48, 15, 6, 3, 85,
100  4, 10, 19, 8, 70, 97, 99, 101, 98, 111, 111, 107, 49, 11, 48, 9, 6, 3, 85,
101  4, 3, 19, 2, 67, 65, 48, 30, 23, 13, 49, 52, 48, 52, 49, 54, 48, 57, 48,
102  55, 49, 54, 90, 23, 13, 49, 53, 48, 52, 49, 54, 48, 57, 48, 55, 49, 54, 90,
103  48, 91, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85, 83, 49, 11, 48, 9, 6, 3,
104  85, 4, 8, 19, 2, 85, 83, 49, 17, 48, 15, 6, 3, 85, 4, 10, 19, 8, 102, 97,
105  99, 101, 98, 111, 111, 107, 49, 17, 48, 15, 6, 3, 85, 4, 11, 19, 8, 102,
106  97, 99, 101, 98, 111, 111, 107, 49, 25, 48, 23, 6, 3, 85, 4, 3, 19, 16,
107  119, 119, 119, 46, 102, 97, 99, 101, 98, 111, 111, 107, 46, 99, 111, 109,
108  48, 130, 1, 183, 48, 130, 1, 44, 6, 7, 42, 134, 72, 206, 56, 4, 1, 48, 130,
109  1, 31, 2, 129, 129, 0, 253, 127, 83, 129, 29, 117, 18, 41, 82, 223, 74,
110  156, 46, 236, 228, 231, 246, 17, 183, 82, 60, 239, 68, 0, 195, 30, 63, 128,
111  182, 81, 38, 105, 69, 93, 64, 34, 81, 251, 89, 61, 141, 88, 250, 191, 197,
112  245, 186, 48, 246, 203, 155, 85, 108, 215, 129, 59, 128, 29, 52, 111, 242,
113  102, 96, 183, 107, 153, 80, 165, 164, 159, 159, 232, 4, 123, 16, 34, 194,
114  79, 187, 169, 215, 254, 183, 198, 27, 248, 59, 87, 231, 198, 168, 166, 21,
115  15, 4, 251, 131, 246, 211, 197, 30, 195, 2, 53, 84, 19, 90, 22, 145, 50,
116  246, 117, 243, 174, 43, 97, 215, 42, 239, 242, 34, 3, 25, 157, 209, 72, 1,
117  199, 2, 21, 0, 151, 96, 80, 143, 21, 35, 11, 204, 178, 146, 185, 130, 162,
118  235, 132, 11, 240, 88, 28, 245, 2, 129, 129, 0, 247, 225, 160, 133, 214,
119  155, 61, 222, 203, 188, 171, 92, 54, 184, 87, 185, 121, 148, 175, 187, 250,
120  58, 234, 130, 249, 87, 76, 11, 61, 7, 130, 103, 81, 89, 87, 142, 186, 212,
121  89, 79, 230, 113, 7, 16, 129, 128, 180, 73, 22, 113, 35, 232, 76, 40, 22,
122  19, 183, 207, 9, 50, 140, 200, 166, 225, 60, 22, 122, 139, 84, 124, 141,
123  40, 224, 163, 174, 30, 43, 179, 166, 117, 145, 110, 163, 127, 11, 250, 33,
124  53, 98, 241, 251, 98, 122, 1, 36, 59, 204, 164, 241, 190, 168, 81, 144,
125  137, 168, 131, 223, 225, 90, 229, 159, 6, 146, 139, 102, 94, 128, 123, 85,
126  37, 100, 1, 76, 59, 254, 207, 73, 42, 3, 129, 132, 0, 2, 129, 128, 90, 172,
127  11, 241, 173, 170, 216, 73, 212, 145, 255, 30, 26, 9, 15, 207, 43, 78, 66,
128  19, 239, 76, 26, 190, 227, 22, 242, 109, 46, 46, 175, 215, 254, 22, 160,
129  233, 31, 143, 255, 186, 226, 156, 111, 37, 178, 2, 80, 99, 156, 208, 19,
130  30, 145, 253, 152, 234, 26, 143, 231, 20, 150, 179, 116, 132, 203, 109,
131  223, 242, 208, 57, 177, 77, 163, 224, 210, 110, 60, 227, 221, 123, 5, 129,
132  238, 4, 83, 16, 48, 124, 84, 246, 98, 97, 176, 147, 187, 173, 198, 83, 102,
133  31, 57, 214, 219, 220, 58, 245, 208, 85, 27, 71, 192, 225, 91, 128, 128,
134  216, 116, 30, 45, 116, 67, 66, 185, 183, 215, 145, 219, 155, 48, 13, 6, 9,
135  42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 131, 39, 108,
136  45, 93, 90, 177, 99, 73, 210, 121, 4, 179, 90, 223, 73, 137, 74, 146, 142,
137  26, 230, 134, 5, 79, 159, 26, 82, 139, 69, 223, 55, 208, 181, 136, 250,
138  108, 223, 165, 235, 14, 116, 146, 235, 124, 63, 38, 150, 212, 236, 181, 52,
139  240, 136, 59, 12, 132, 162, 204, 202, 219, 72, 7, 254, 210, 109, 182, 249,
140  126, 61, 55, 37, 82, 169, 198, 234, 134, 85, 10, 98, 51, 232, 239, 92, 216,
141  107, 170, 94, 73, 171, 92, 55, 219, 8, 120, 154, 223, 88, 8, 135, 152, 101,
142  112, 184, 71, 37, 6, 238, 53, 233, 113, 227, 222, 248, 102, 161, 190, 78,
143  163, 170, 23, 48, 8, 222, 1, 30, 233, 251, 161, 246, 246, 90, 51, 151, 158,
144  60, 70, 93, 14, 121, 5, 181, 157, 8, 243, 211, 252, 95, 44, 201, 186, 80,
145  6, 55, 36, 54, 128, 87, 76, 1, 155, 152, 99, 92, 206, 105, 69, 90, 145, 50,
146  121, 14, 40, 70, 52, 217, 246, 244, 142, 176, 221, 202, 32, 78, 189, 229,
147  99, 91, 141, 81, 173, 112, 138, 251, 131, 255, 141, 3, 191, 68, 129, 235,
148  219, 57, 133, 241, 7, 53, 223, 50, 226, 88, 28, 157, 23, 110, 9, 237, 64,
149  67, 60, 77, 74, 110, 177, 130, 204, 41, 52, 57, 121, 103, 93, 154, 248,
150  114, 140, 163, 124, 227, 102, 186, 10, 220, 29, 2, 254, 147, 8, 121, 79, 8,
151  148, 127, 32, 175, 164, 2, 4, 0, 165, 3, 2, 1, 19, },
152 
153  // Session 3
154  { 48, 130, 4, 32, 2, 1, 1, 2, 2, 3, 1, 4, 2, 0, 56, 4, 32, 83, 116, 21, 50,
155  186, 222, 2, 46, 159, 227, 91, 165, 32, 209, 124, 156, 57, 111, 20, 98,
156  150, 88, 20, 242, 184, 169, 64, 24, 105, 185, 128, 62, 4, 48, 16, 7, 108,
157  47, 93, 126, 249, 205, 90, 168, 186, 194, 74, 148, 7, 106, 242, 3, 174,
158  174, 164, 134, 24, 159, 195, 191, 86, 10, 212, 217, 14, 156, 50, 157, 112,
159  31, 226, 222, 41, 182, 130, 235, 245, 191, 254, 5, 206, 236, 161, 6, 2, 4,
160  83, 116, 21, 50, 162, 4, 2, 2, 1, 44, 163, 130, 3, 166, 48, 130, 3, 162,
161  48, 130, 2, 138, 2, 5, 17, 17, 17, 17, 24, 48, 13, 6, 9, 42, 134, 72, 134,
162  247, 13, 1, 1, 11, 5, 0, 48, 58, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85,
163  83, 49, 11, 48, 9, 6, 3, 85, 4, 8, 19, 2, 67, 65, 49, 17, 48, 15, 6, 3, 85,
164  4, 10, 19, 8, 70, 97, 99, 101, 98, 111, 111, 107, 49, 11, 48, 9, 6, 3, 85,
165  4, 3, 19, 2, 67, 65, 48, 30, 23, 13, 49, 52, 48, 52, 49, 54, 48, 57, 48,
166  55, 49, 54, 90, 23, 13, 49, 53, 48, 52, 49, 54, 48, 57, 48, 55, 49, 54, 90,
167  48, 91, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85, 83, 49, 11, 48, 9, 6, 3,
168  85, 4, 8, 19, 2, 85, 83, 49, 17, 48, 15, 6, 3, 85, 4, 10, 19, 8, 102, 97,
169  99, 101, 98, 111, 111, 107, 49, 17, 48, 15, 6, 3, 85, 4, 11, 19, 8, 102,
170  97, 99, 101, 98, 111, 111, 107, 49, 25, 48, 23, 6, 3, 85, 4, 3, 19, 16,
171  119, 119, 119, 46, 102, 97, 99, 101, 98, 111, 111, 107, 46, 99, 111, 109,
172  48, 130, 1, 183, 48, 130, 1, 44, 6, 7, 42, 134, 72, 206, 56, 4, 1, 48, 130,
173  1, 31, 2, 129, 129, 0, 253, 127, 83, 129, 29, 117, 18, 41, 82, 223, 74,
174  156, 46, 236, 228, 231, 246, 17, 183, 82, 60, 239, 68, 0, 195, 30, 63, 128,
175  182, 81, 38, 105, 69, 93, 64, 34, 81, 251, 89, 61, 141, 88, 250, 191, 197,
176  245, 186, 48, 246, 203, 155, 85, 108, 215, 129, 59, 128, 29, 52, 111, 242,
177  102, 96, 183, 107, 153, 80, 165, 164, 159, 159, 232, 4, 123, 16, 34, 194,
178  79, 187, 169, 215, 254, 183, 198, 27, 248, 59, 87, 231, 198, 168, 166, 21,
179  15, 4, 251, 131, 246, 211, 197, 30, 195, 2, 53, 84, 19, 90, 22, 145, 50,
180  246, 117, 243, 174, 43, 97, 215, 42, 239, 242, 34, 3, 25, 157, 209, 72, 1,
181  199, 2, 21, 0, 151, 96, 80, 143, 21, 35, 11, 204, 178, 146, 185, 130, 162,
182  235, 132, 11, 240, 88, 28, 245, 2, 129, 129, 0, 247, 225, 160, 133, 214,
183  155, 61, 222, 203, 188, 171, 92, 54, 184, 87, 185, 121, 148, 175, 187, 250,
184  58, 234, 130, 249, 87, 76, 11, 61, 7, 130, 103, 81, 89, 87, 142, 186, 212,
185  89, 79, 230, 113, 7, 16, 129, 128, 180, 73, 22, 113, 35, 232, 76, 40, 22,
186  19, 183, 207, 9, 50, 140, 200, 166, 225, 60, 22, 122, 139, 84, 124, 141,
187  40, 224, 163, 174, 30, 43, 179, 166, 117, 145, 110, 163, 127, 11, 250, 33,
188  53, 98, 241, 251, 98, 122, 1, 36, 59, 204, 164, 241, 190, 168, 81, 144,
189  137, 168, 131, 223, 225, 90, 229, 159, 6, 146, 139, 102, 94, 128, 123, 85,
190  37, 100, 1, 76, 59, 254, 207, 73, 42, 3, 129, 132, 0, 2, 129, 128, 90, 172,
191  11, 241, 173, 170, 216, 73, 212, 145, 255, 30, 26, 9, 15, 207, 43, 78, 66,
192  19, 239, 76, 26, 190, 227, 22, 242, 109, 46, 46, 175, 215, 254, 22, 160,
193  233, 31, 143, 255, 186, 226, 156, 111, 37, 178, 2, 80, 99, 156, 208, 19,
194  30, 145, 253, 152, 234, 26, 143, 231, 20, 150, 179, 116, 132, 203, 109,
195  223, 242, 208, 57, 177, 77, 163, 224, 210, 110, 60, 227, 221, 123, 5, 129,
196  238, 4, 83, 16, 48, 124, 84, 246, 98, 97, 176, 147, 187, 173, 198, 83, 102,
197  31, 57, 214, 219, 220, 58, 245, 208, 85, 27, 71, 192, 225, 91, 128, 128,
198  216, 116, 30, 45, 116, 67, 66, 185, 183, 215, 145, 219, 155, 48, 13, 6, 9,
199  42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 131, 39, 108,
200  45, 93, 90, 177, 99, 73, 210, 121, 4, 179, 90, 223, 73, 137, 74, 146, 142,
201  26, 230, 134, 5, 79, 159, 26, 82, 139, 69, 223, 55, 208, 181, 136, 250,
202  108, 223, 165, 235, 14, 116, 146, 235, 124, 63, 38, 150, 212, 236, 181, 52,
203  240, 136, 59, 12, 132, 162, 204, 202, 219, 72, 7, 254, 210, 109, 182, 249,
204  126, 61, 55, 37, 82, 169, 198, 234, 134, 85, 10, 98, 51, 232, 239, 92, 216,
205  107, 170, 94, 73, 171, 92, 55, 219, 8, 120, 154, 223, 88, 8, 135, 152, 101,
206  112, 184, 71, 37, 6, 238, 53, 233, 113, 227, 222, 248, 102, 161, 190, 78,
207  163, 170, 23, 48, 8, 222, 1, 30, 233, 251, 161, 246, 246, 90, 51, 151, 158,
208  60, 70, 93, 14, 121, 5, 181, 157, 8, 243, 211, 252, 95, 44, 201, 186, 80,
209  6, 55, 36, 54, 128, 87, 76, 1, 155, 152, 99, 92, 206, 105, 69, 90, 145, 50,
210  121, 14, 40, 70, 52, 217, 246, 244, 142, 176, 221, 202, 32, 78, 189, 229,
211  99, 91, 141, 81, 173, 112, 138, 251, 131, 255, 141, 3, 191, 68, 129, 235,
212  219, 57, 133, 241, 7, 53, 223, 50, 226, 88, 28, 157, 23, 110, 9, 237, 64,
213  67, 60, 77, 74, 110, 177, 130, 204, 41, 52, 57, 121, 103, 93, 154, 248,
214  114, 140, 163, 124, 227, 102, 186, 10, 220, 29, 2, 254, 147, 8, 121, 79, 8,
215  148, 127, 32, 175, 164, 2, 4, 0, 165, 3, 2, 1, 19, }
216 };
217 
218 const unsigned char kSessionDataWithTicket[] = { 48, 130, 6, 65, 2, 1,
219  1, 2, 2, 3, 3, 4, 2, 192, 43, 4, 32, 210, 43, 250, 203, 148, 216, 240,
220  105, 223, 166, 40, 126, 54, 36, 175, 185, 214, 213, 114, 48, 50, 202,
221  82, 158, 6, 141, 149, 181, 31, 38, 204, 204, 4, 48, 250, 59, 244, 243,
222  75, 147, 73, 231, 212, 166, 183, 110, 166, 214, 93, 88, 225, 229, 155,
223  123, 11, 207, 190, 196, 25, 198, 36, 252, 71, 218, 12, 67, 161, 25,
224  240, 28, 141, 251, 176, 240, 170, 122, 162, 200, 157, 0, 220, 217,
225  161, 6, 2, 4, 85, 186, 198, 92, 162, 4, 2, 2, 1, 44, 163, 130, 4, 235,
226  48, 130, 4, 231, 48, 130, 3, 207, 160, 3, 2, 1, 2, 2, 16, 4, 200, 173,
227  121, 70, 20, 4, 241, 110, 145, 123, 2, 222, 229, 117, 116, 48, 13, 6,
228  9, 42, 134, 72, 134, 247, 13, 1, 1, 5, 5, 0, 48, 102, 49, 11, 48, 9,
229  6, 3, 85, 4, 6, 19, 2, 85, 83, 49, 21, 48, 19, 6, 3, 85, 4, 10, 19,
230  12, 68, 105, 103, 105, 67, 101, 114, 116, 32, 73, 110, 99, 49, 25, 48,
231  23, 6, 3, 85, 4, 11, 19, 16, 119, 119, 119, 46, 100, 105, 103, 105,
232  99, 101, 114, 116, 46, 99, 111, 109, 49, 37, 48, 35, 6, 3, 85, 4, 3,
233  19, 28, 68, 105, 103, 105, 67, 101, 114, 116, 32, 72, 105, 103, 104,
234  32, 65, 115, 115, 117, 114, 97, 110, 99, 101, 32, 67, 65, 45, 51, 48,
235  30, 23, 13, 49, 52, 48, 56, 50, 56, 48, 48, 48, 48, 48, 48, 90, 23,
236  13, 49, 53, 49, 48, 49, 53, 49, 50, 48, 48, 48, 48, 90, 48, 97, 49,
237  11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85, 83, 49, 11, 48, 9, 6, 3, 85, 4,
238  8, 19, 2, 67, 65, 49, 19, 48, 17, 6, 3, 85, 4, 7, 19, 10, 77, 101,
239  110, 108, 111, 32, 80, 97, 114, 107, 49, 23, 48, 21, 6, 3, 85, 4, 10,
240  19, 14, 70, 97, 99, 101, 98, 111, 111, 107, 44, 32, 73, 110, 99, 46,
241  49, 23, 48, 21, 6, 3, 85, 4, 3, 12, 14, 42, 46, 102, 97, 99, 101, 98,
242  111, 111, 107, 46, 99, 111, 109, 48, 89, 48, 19, 6, 7, 42, 134, 72,
243  206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 3, 66, 0, 4, 216,
244  209, 221, 53, 189, 226, 89, 182, 251, 155, 31, 84, 21, 140, 219, 191,
245  78, 88, 189, 71, 190, 184, 16, 252, 34, 233, 210, 158, 152, 248, 73,
246  42, 37, 251, 148, 70, 228, 66, 153, 132, 80, 28, 95, 1, 253, 20, 37,
247  49, 92, 78, 217, 100, 253, 197, 12, 179, 70, 210, 161, 188, 112, 180,
248  135, 142, 163, 130, 2, 95, 48, 130, 2, 91, 48, 31, 6, 3, 85, 29, 35,
249  4, 24, 48, 22, 128, 20, 80, 234, 115, 137, 219, 41, 251, 16, 143, 158,
250  229, 1, 32, 212, 222, 121, 153, 72, 131, 247, 48, 29, 6, 3, 85, 29,
251  14, 4, 22, 4, 20, 67, 9, 147, 64, 250, 17, 75, 48, 51, 236, 242, 135,
252  110, 141, 113, 24, 207, 138, 188, 142, 48, 129, 183, 6, 3, 85, 29, 17,
253  4, 129, 175, 48, 129, 172, 130, 14, 42, 46, 102, 97, 99, 101, 98, 111,
254  111, 107, 46, 99, 111, 109, 130, 12, 102, 97, 99, 101, 98, 111, 111,
255  107, 46, 99, 111, 109, 130, 8, 42, 46, 102, 98, 46, 99, 111, 109, 130,
256  6, 102, 98, 46, 99, 111, 109, 130, 11, 42, 46, 102, 98, 115, 98, 120,
257  46, 99, 111, 109, 130, 11, 42, 46, 102, 98, 99, 100, 110, 46, 110,
258  101, 116, 130, 14, 42, 46, 120, 120, 46, 102, 98, 99, 100, 110, 46,
259  110, 101, 116, 130, 14, 42, 46, 120, 121, 46, 102, 98, 99, 100, 110,
260  46, 110, 101, 116, 130, 14, 42, 46, 120, 122, 46, 102, 98, 99, 100,
261  110, 46, 110, 101, 116, 130, 16, 42, 46, 109, 46, 102, 97, 99, 101,
262  98, 111, 111, 107, 46, 99, 111, 109, 130, 15, 42, 46, 109, 101, 115,
263  115, 101, 110, 103, 101, 114, 46, 99, 111, 109, 130, 13, 109, 101,
264  115, 115, 101, 110, 103, 101, 114, 46, 99, 111, 109, 48, 14, 6, 3, 85,
265  29, 15, 1, 1, 255, 4, 4, 3, 2, 3, 136, 48, 29, 6, 3, 85, 29, 37, 4,
266  22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3,
267  2, 48, 97, 6, 3, 85, 29, 31, 4, 90, 48, 88, 48, 42, 160, 40, 160, 38,
268  134, 36, 104, 116, 116, 112, 58, 47, 47, 99, 114, 108, 51, 46, 100,
269  105, 103, 105, 99, 101, 114, 116, 46, 99, 111, 109, 47, 99, 97, 51,
270  45, 103, 50, 57, 46, 99, 114, 108, 48, 42, 160, 40, 160, 38, 134, 36,
271  104, 116, 116, 112, 58, 47, 47, 99, 114, 108, 52, 46, 100, 105, 103,
272  105, 99, 101, 114, 116, 46, 99, 111, 109, 47, 99, 97, 51, 45, 103, 50,
273  57, 46, 99, 114, 108, 48, 66, 6, 3, 85, 29, 32, 4, 59, 48, 57, 48, 55,
274  6, 9, 96, 134, 72, 1, 134, 253, 108, 1, 1, 48, 42, 48, 40, 6, 8, 43,
275  6, 1, 5, 5, 7, 2, 1, 22, 28, 104, 116, 116, 112, 115, 58, 47, 47, 119,
276  119, 119, 46, 100, 105, 103, 105, 99, 101, 114, 116, 46, 99, 111, 109,
277  47, 67, 80, 83, 48, 123, 6, 8, 43, 6, 1, 5, 5, 7, 1, 1, 4, 111, 48,
278  109, 48, 36, 6, 8, 43, 6, 1, 5, 5, 7, 48, 1, 134, 24, 104, 116, 116,
279  112, 58, 47, 47, 111, 99, 115, 112, 46, 100, 105, 103, 105, 99, 101,
280  114, 116, 46, 99, 111, 109, 48, 69, 6, 8, 43, 6, 1, 5, 5, 7, 48, 2,
281  134, 57, 104, 116, 116, 112, 58, 47, 47, 99, 97, 99, 101, 114, 116,
282  115, 46, 100, 105, 103, 105, 99, 101, 114, 116, 46, 99, 111, 109, 47,
283  68, 105, 103, 105, 67, 101, 114, 116, 72, 105, 103, 104, 65, 115, 115,
284  117, 114, 97, 110, 99, 101, 67, 65, 45, 51, 46, 99, 114, 116, 48, 12,
285  6, 3, 85, 29, 19, 1, 1, 255, 4, 2, 48, 0, 48, 13, 6, 9, 42, 134, 72,
286  134, 247, 13, 1, 1, 5, 5, 0, 3, 130, 1, 1, 0, 157, 209, 176, 90, 7,
287  249, 48, 235, 219, 240, 17, 203, 96, 137, 113, 197, 247, 246, 48, 88,
288  238, 215, 180, 84, 206, 55, 183, 72, 120, 84, 88, 175, 143, 167, 196,
289  89, 207, 250, 14, 77, 239, 138, 81, 224, 245, 184, 241, 31, 89, 208,
290  174, 115, 198, 37, 201, 209, 242, 243, 214, 218, 32, 165, 166, 51,
291  139, 239, 115, 70, 87, 44, 185, 94, 194, 231, 135, 139, 181, 86, 148,
292  224, 6, 2, 196, 163, 23, 82, 227, 111, 119, 202, 161, 225, 46, 132,
293  196, 125, 89, 25, 143, 6, 135, 112, 3, 220, 88, 50, 81, 74, 86, 207,
294  231, 56, 24, 81, 183, 4, 22, 149, 149, 110, 54, 107, 115, 81, 102,
295  141, 212, 123, 12, 209, 196, 106, 76, 241, 247, 153, 161, 181, 97,
296  164, 18, 241, 47, 82, 228, 213, 44, 109, 120, 89, 20, 106, 88, 24,
297  233, 188, 176, 10, 26, 120, 174, 156, 60, 99, 155, 85, 75, 233, 181,
298  220, 69, 236, 69, 39, 245, 235, 73, 122, 237, 230, 91, 28, 14, 109,
299  172, 218, 93, 28, 229, 19, 8, 182, 172, 141, 32, 249, 157, 112, 220,
300  5, 193, 14, 79, 95, 39, 133, 217, 31, 175, 73, 208, 35, 116, 246, 160,
301  165, 237, 245, 64, 233, 24, 246, 41, 111, 70, 145, 149, 122, 74, 247,
302  44, 124, 88, 99, 189, 38, 249, 140, 24, 85, 98, 83, 21, 180, 77, 0,
303  184, 151, 155, 188, 158, 192, 61, 221, 165, 133, 164, 2, 4, 0, 166,
304  18, 4, 16, 119, 119, 119, 46, 102, 97, 99, 101, 98, 111, 111, 107, 46,
305  99, 111, 109, 169, 5, 2, 3, 1, 79, 240, 170, 129, 195, 4, 129, 192,
306  238, 5, 167, 149, 22, 69, 66, 195, 66, 199, 37, 228, 51, 14, 95, 148,
307  40, 81, 237, 132, 113, 140, 5, 50, 55, 161, 254, 160, 244, 140, 46,
308  231, 248, 101, 230, 101, 175, 234, 52, 102, 99, 68, 140, 16, 65, 116,
309  229, 170, 73, 57, 98, 118, 137, 190, 223, 253, 122, 21, 140, 29, 20,
310  4, 175, 198, 205, 110, 205, 178, 203, 55, 14, 70, 56, 216, 120, 167,
311  110, 214, 198, 182, 221, 2, 141, 36, 136, 43, 22, 34, 67, 91, 152,
312  244, 30, 155, 1, 140, 23, 183, 205, 200, 98, 56, 41, 17, 172, 213,
313  180, 37, 111, 49, 150, 123, 35, 199, 252, 234, 228, 6, 202, 113, 194,
314  171, 32, 55, 104, 75, 158, 140, 100, 80, 57, 2, 49, 70, 34, 85, 183,
315  32, 172, 6, 113, 154, 113, 48, 221, 18, 27, 250, 53, 48, 209, 28, 187,
316  83, 215, 149, 231, 36, 115, 174, 116, 13, 217, 199, 167, 38, 222, 204,
317  0, 175, 80, 31, 26, 253, 119, 182, 235, 242, 67, 248, 105, 119, 45,
318  29, 2, 69, 80, 162, 186, 96, 175, 100 };
319 
320 std::vector<std::pair<SSL_SESSION*, size_t>> getSessions() {
321  std::vector<std::pair<SSL_SESSION*, size_t>> sessions;
322 
323  for (size_t i = 0; i < kNumSessions; ++i) {
324  const unsigned char* p = kSessionData[i];
325  auto s = d2i_SSL_SESSION(nullptr, &p, kSessionDataLen);
326  CHECK(s) << "Invalid session " << i;
327  sessions.emplace_back(s, kSessionDataLen);
328 
329  // Make sure the same session compares same to itself.
330  CHECK(isSameSession(sessions[i], sessions[i]));
331  }
332  // Make sure all sessions are different from each other
333  CHECK(!isSameSession(sessions[0], sessions[1]));
334  CHECK(!isSameSession(sessions[1], sessions[2]));
335  CHECK(!isSameSession(sessions[2], sessions[0]));
336 
337  return sessions;
338 }
339 
340 std::pair<SSL_SESSION*, size_t> getSessionWithTicket() {
341  const unsigned char* p = kSessionDataWithTicket;
342  size_t sessionDataWithTicketLen = sizeof(kSessionDataWithTicket);
343  auto s = d2i_SSL_SESSION(nullptr, &p, sessionDataWithTicketLen);
344  CHECK(isSameSession(
345  std::make_pair(s, sessionDataWithTicketLen),
346  std::make_pair(s, sessionDataWithTicketLen)));
347  return std::make_pair(s, sessionDataWithTicketLen);
348 }
349 
351  std::pair<SSL_SESSION*, size_t> session) {
352  if (session.first) {
353  // This simulates what openssl does before handing control to the cache.
354  SSL_SESSION_up_ref(session.first);
355  }
356  return SSLSessionPtr(session.first);
357 }
358 
359 std::string getSessionData(SSL_SESSION* s, size_t expectedLength) {
360  std::unique_ptr<unsigned char[]>
361  sessionData(new unsigned char[expectedLength]);
362  auto p = sessionData.get();
363  auto len = (size_t)i2d_SSL_SESSION(s, &p);
364  CHECK(expectedLength == len);
365  return std::string(reinterpret_cast<const char*>(sessionData.get()), len);
366 }
367 
369  std::pair<SSL_SESSION*, size_t> lhs,
370  std::pair<SSL_SESSION*, size_t> rhs) {
371  return getSessionData(lhs.first, lhs.second) ==
372  getSessionData(rhs.first, rhs.second);
373 }
374 
375 }
const size_t kNumSessions
Definition: TestUtil.cpp:20
SSLSessionPtr createPersistentTestSession(std::pair< SSL_SESSION *, size_t > session)
Definition: TestUtil.cpp:350
const size_t kSessionDataLen
Definition: TestUtil.cpp:21
bool isSameSession(std::pair< SSL_SESSION *, size_t > lhs, std::pair< SSL_SESSION *, size_t > rhs)
Definition: TestUtil.cpp:368
FOLLY_PUSH_WARNING RHS rhs
Definition: Traits.h:649
std::unique_ptr< SSL_SESSION, SessionDestructor > SSLSessionPtr
Definition: SSLSession.h:32
std::vector< std::pair< SSL_SESSION *, size_t > > getSessions()
Definition: TestUtil.cpp:320
const unsigned char kSessionData[kNumSessions][kSessionDataLen]
Definition: TestUtil.cpp:24
const unsigned char kSessionDataWithTicket[]
Definition: TestUtil.cpp:218
const char * string
Definition: Conv.cpp:212
static set< string > s
std::string getSessionData(SSL_SESSION *s, size_t expectedLength)
Definition: TestUtil.cpp:359
std::pair< SSL_SESSION *, size_t > getSessionWithTicket()
Definition: TestUtil.cpp:340