/// <exception cref="U2FException"/> /// <exception cref="System.IO.IOException"/> public static KeySignResponse ParseAuthenticateResponse(Stream inputStream) { using (var dataInputStream = new EndianReader(inputStream, Endianness.BigEndian)) { return(RawMessageCodec.DecodeKeySignResponse(ParseMessage(dataInputStream).Segment())); } }
/// <exception cref="U2FException"/> /// <exception cref="System.IO.IOException"/> public static IU2FRequest ParseRequest(Stream inputStream) { using (var dataInputStream = new EndianReader(inputStream, Endianness.BigEndian)) { var version = dataInputStream.ReadByte(); if (version != Version) { throw new U2FException($"Unsupported message version: {version}"); } var command = dataInputStream.ReadByte(); switch (command) { case CommandRegister: { return(RawMessageCodec.DecodeKeyRegisterRequest(ParseMessage(dataInputStream ))); } case CommandAuthenticate: { return(RawMessageCodec.DecodeKeySignRequest(ParseMessage (dataInputStream))); } default: { throw new U2FException($"Unsupported command: {command}"); } } } }
public static KeyResponse <KeySignResponse> DecodeAuthenticateReponse(ApduResponse apdu) { var status = ParseKeyResponseStatus(apdu.Status); var response = status == KeyResponseStatus.Success ? RawMessageCodec.DecodeKeySignResponse(apdu.ResponseData) : null; return(new KeyResponse <KeySignResponse>(apdu, response, status)); }
/// <exception cref="System.IO.IOException"/> /// <exception cref="U2FException"/> public static void SendAuthenticateResponse(Stream outputStream, KeySignResponse keySignResponse) { SendResponse(outputStream, RawMessageCodec.EncodeKeySignResponse(keySignResponse)); }
/// <exception cref="System.IO.IOException"/> /// <exception cref="U2FException"/> public static void SendAuthenticateRequest(Stream outputStream, KeySignRequest keySignRequest) { SendRequest(outputStream, CommandAuthenticate, RawMessageCodec.EncodeKeySignRequest(keySignRequest)); }
/// <exception cref="System.IO.IOException"/> /// <exception cref="U2FException"/> public static void SendRegisterResponse(Stream outputStream, KeyRegisterResponse keyRegisterResponse) { SendResponse(outputStream, RawMessageCodec.EncodeKeyRegisterResponse(keyRegisterResponse)); }
/// <exception cref="System.IO.IOException"/> /// <exception cref="U2FException"/> public static void SendRegisterRequest(Stream outputStream, KeyRegisterRequest keyRegisterRequest) { SendRequest(outputStream, CommandRegister, RawMessageCodec. EncodeKeyRegisterRequest(keyRegisterRequest)); }
public static ApduRequest EncodeAuthenticateRequest(KeyRequest <KeySignRequest> request) { var requestBytes = RawMessageCodec.EncodeKeySignRequest(request.Request); return(new ApduRequest(AuthenticateCommand, (byte)request.Flags, 0x00, requestBytes.Segment())); }
public static ApduRequest EncodeRegisterRequest(KeyRequest <KeyRegisterRequest> request) { var requestBytes = RawMessageCodec.EncodeKeyRegisterRequest(request.Request); return(new ApduRequest(RegisterCommand, (byte)request.Flags, 0x00, requestBytes.Segment())); }