| 148 | } |
| 149 | |
| 150 | int main(int argc, char *argv[]) |
| 151 | { |
| 152 | struct privkey alice, bob, carol, dave, path_key, override_path_key; |
| 153 | struct pubkey alice_id, bob_id, carol_id, dave_id, path_key_pub, override_path_key_pub, alias; |
| 154 | struct secret self_id; |
| 155 | u8 *enctlv; |
| 156 | struct tlv_encrypted_data_tlv *tlv; |
| 157 | |
| 158 | common_setup(argv[0]); |
| 159 | |
| 160 | memset(&alice, 'A', sizeof(alice)); |
| 161 | memset(&bob, 'B', sizeof(bob)); |
| 162 | memset(&carol, 'C', sizeof(carol)); |
| 163 | memset(&dave, 'D', sizeof(dave)); |
| 164 | pubkey_from_privkey(&alice, &alice_id); |
| 165 | pubkey_from_privkey(&bob, &bob_id); |
| 166 | pubkey_from_privkey(&carol, &carol_id); |
| 167 | pubkey_from_privkey(&dave, &dave_id); |
| 168 | |
| 169 | memset(&path_key, 5, sizeof(path_key)); |
| 170 | pubkey_from_privkey(&path_key, &path_key_pub); |
| 171 | |
| 172 | /* We output the JSON test vectors. */ |
| 173 | printf("[{"); |
| 174 | json_strfield("test name", "Simple encrypted_recipient_data for Alice, next is Bob"); |
| 175 | json_strfield("node_privkey", |
| 176 | fmt_privkey(tmpctx, &alice)); |
| 177 | json_strfield("node_id", |
| 178 | fmt_pubkey(tmpctx, &alice_id)); |
| 179 | json_strfield("path_key_secret", |
| 180 | fmt_privkey(tmpctx, &path_key)); |
| 181 | json_strfield("path_key", |
| 182 | fmt_pubkey(tmpctx, &path_key_pub)); |
| 183 | printf("\t\"encrypted_data_tlv\": {\n" |
| 184 | "\t\t\"next_node_id\": \"%s\"\n" |
| 185 | "\t},\n", |
| 186 | fmt_pubkey(tmpctx, &bob_id)); |
| 187 | |
| 188 | tlv = tlv_encrypted_data_tlv_new(tmpctx); |
| 189 | tlv->next_node_id = &bob_id; |
| 190 | enctlv = encrypt_tlv_encrypted_data(tmpctx, &path_key, &alice_id, tlv, |
| 191 | &path_key, &alias); |
| 192 | printf("\t\"encrypted_recipient_data_hex\": \"%s\"\n" |
| 193 | "},\n", |
| 194 | tal_hex(tmpctx, enctlv)); |
| 195 | |
| 196 | test_decrypt(&path_key_pub, enctlv, &alice, &bob_id, &path_key); |
| 197 | |
| 198 | pubkey_from_privkey(&path_key, &path_key_pub); |
| 199 | memset(&override_path_key, 7, sizeof(override_path_key)); |
| 200 | pubkey_from_privkey(&override_path_key, &override_path_key_pub); |
| 201 | |
| 202 | printf("{"); |
| 203 | json_strfield("test name", |
| 204 | "path_key_override encrypted_recipient_data for Bob, next is Carol"); |
| 205 | json_strfield("node_privkey", |
| 206 | fmt_privkey(tmpctx, &bob)); |
| 207 | json_strfield("node_id", |
nothing calls this directly
no test coverage detected