| 30 | } |
| 31 | |
| 32 | bool FastPairCrypto::generateValidKeyPair(uint8_t *public_key, size_t *pub_len) { |
| 33 | int ret = mbedtls_ecdh_gen_public(&grp, &d, &Q, mbedtls_ctr_drbg_random, &ctr_drbg); |
| 34 | if (ret != 0) { return false; } |
| 35 | |
| 36 | if (*pub_len >= 65) { |
| 37 | size_t olen; |
| 38 | ret = mbedtls_ecp_point_write_binary( |
| 39 | &grp, &Q, MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, public_key, *pub_len |
| 40 | ); |
| 41 | if (ret == 0 && olen == 65) { |
| 42 | *pub_len = 65; |
| 43 | return true; |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | return false; |
| 48 | } |
| 49 | |
| 50 | bool FastPairCrypto::generateEphemeralKeyPair(uint8_t *public_key, uint8_t *private_key) { |
| 51 | mbedtls_mpi priv; |
no outgoing calls
no test coverage detected