MCPcopy Create free account
hub / github.com/ElementsProject/lightning / main

Function main

common/test/run-cryptomsg.c:134–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132}
133
134int main(int argc, char *argv[])
135{
136 struct crypto_state cs_out, cs_in;
137 struct secret sk, rk, ck;
138 const void *msg;
139 size_t i;
140
141 common_setup(argv[0]);
142 msg = tal_dup_arr(tmpctx, char, "hello", 5, 0);
143
144 /* BOLT #8:
145 *
146 * name: transport-initiator successful handshake
147 *...
148 * # ck,temp_k3=0x919219dbb2920afa8db80f9a51787a840bcf111ed8d588caf9ab4be716e42b01,0x981a46c820fb7a241bc8184ba4bb1f01bcdfafb00dde80098cb8c38db9141520
149 * # encryptWithAD(0x981a46c820fb7a241bc8184ba4bb1f01bcdfafb00dde80098cb8c38db9141520, 0x000000000000000000000000, 0x5dcb5ea9b4ccc755e0e3456af3990641276e1d5dc9afd82f974d90a47c918660, <empty>)
150 * # t=0x8dc68b1c466263b47fdf31e560e139ba
151 * output: 0x00b9e3a702e93e3a9948c2ed6e5fd7590a6e1c3a0344cfc9d5b57357049aa22355361aa02e55a8fc28fef5bd6d71ad0c38228dc68b1c466263b47fdf31e560e139ba
152 * # HKDF(0x919219dbb2920afa8db80f9a51787a840bcf111ed8d588caf9ab4be716e42b01,zero)
153 * output: sk,rk=0x969ab31b4d288cedf6218839b27a3e2140827047f2c0f01bf5c04435d43511a9,0xbb9020b8965f4df047e07f955f3c4b88418984aadc5cdb35096b9ea8fa5c3442
154 */
155 ck = secret_from_hex("0x919219dbb2920afa8db80f9a51787a840bcf111ed8d588caf9ab4be716e42b01");
156 sk = secret_from_hex("0x969ab31b4d288cedf6218839b27a3e2140827047f2c0f01bf5c04435d43511a9");
157 rk = secret_from_hex("0xbb9020b8965f4df047e07f955f3c4b88418984aadc5cdb35096b9ea8fa5c3442");
158
159 cs_out.sn = cs_out.rn = cs_in.sn = cs_in.rn = 0;
160 cs_out.sk = cs_in.rk = sk;
161 cs_out.rk = cs_in.sk = rk;
162 cs_out.s_ck = cs_out.r_ck = cs_in.s_ck = cs_in.r_ck = ck;
163
164 for (i = 0; i < 1002; i++) {
165 u8 *dec, *enc;
166 u16 len;
167
168 enc = cryptomsg_encrypt_msg(tmpctx, &cs_out, msg);
169
170 /* BOLT #8:
171 *
172 * output 0: 0xcf2b30ddf0cf3f80e7c35a6e6730b59fe802473180f396d88a8fb0db8cbcf25d2f214cf9ea1d95
173 */
174 if (i == 0)
175 check_result(enc, "cf2b30ddf0cf3f80e7c35a6e6730b59fe802473180f396d88a8fb0db8cbcf25d2f214cf9ea1d95");
176 /* BOLT #8:
177 *
178 * output 1: 0x72887022101f0b6753e0c7de21657d35a4cb2a1f5cde2650528bbc8f837d0f0d7ad833b1a256a1
179 */
180 if (i == 1)
181 check_result(enc, "72887022101f0b6753e0c7de21657d35a4cb2a1f5cde2650528bbc8f837d0f0d7ad833b1a256a1");
182
183 /* BOLT #8:
184 *
185 * output 500: 0x178cb9d7387190fa34db9c2d50027d21793c9bc2d40b1e14dcf30ebeeeb220f48364f7a4c68bf8
186 * output 501: 0x1b186c57d44eb6de4c057c49940d79bb838a145cb528d6e8fd26dbe50a60ca2c104b56b60e45bd
187 */
188 if (i == 500)
189 check_result(enc, "178cb9d7387190fa34db9c2d50027d21793c9bc2d40b1e14dcf30ebeeeb220f48364f7a4c68bf8");
190 if (i == 501)
191 check_result(enc, "1b186c57d44eb6de4c057c49940d79bb838a145cb528d6e8fd26dbe50a60ca2c104b56b60e45bd");

Callers

nothing calls this directly

Calls 9

common_setupFunction · 0.85
cryptomsg_encrypt_msgFunction · 0.85
cryptomsg_decrypt_headerFunction · 0.85
abortFunction · 0.85
tal_bytelenFunction · 0.85
cryptomsg_decrypt_bodyFunction · 0.85
common_shutdownFunction · 0.85
secret_from_hexFunction · 0.70
check_resultFunction · 0.70

Tested by

no test coverage detected