public byte[] createSharedSecret(KeyAgreement keyAgreement) { string aG_x = BitConverter.ToString(keyAgreement.X).Replace("-", string.Empty); string aG_y = BitConverter.ToString(keyAgreement.Y).Replace("-", string.Empty); var bG_x = new StringBuilder(256); var bG_y = new StringBuilder(256); var strSharedSecret = new StringBuilder(256); int st = ECDH.CreateSharedSecret(aG_x, aG_y, bG_x, bG_y, strSharedSecret); // byte配列(32)にする var sharedSecret = Common.HexStringToBytes(strSharedSecret.ToString()); My_KeyAgreement = new KeyAgreement(2, -7, 1, bG_x.ToString(), bG_y.ToString()); return(sharedSecret); }
public async Task <CTAPResponse> GetKeyAgreement(DevParam devParam) { var cbor = CBORObject.NewMap(); // 0x01:pinProtocol = 1固定 cbor.Add(0x01, 1); // 0x02:subCommand = 0x02:getKeyAgreement cbor.Add(0x02, 0x02); var resi = await sendCommandandResponse(devParam, 0x06, cbor); var response = new CTAPResponse(resi); if (resi.ResponseDataCbor != null) { Authenticator_KeyAgreement = new KeyAgreement(resi.ResponseDataCbor); } return(response); }