예제 #1
0
        internal FidoException(FidoApduResponse apduStatus)
        {
            StatusCode = apduStatus;
            switch (apduStatus)
            {
            case FidoApduResponse.Ok: throw new ArgumentException("APDU was OK");

            case FidoApduResponse.UserPresenceRequired: Type = FidoError.UserPresenceRequired; break;

            case FidoApduResponse.InvalidKeyHandle: Type = FidoError.InvalidKeyHandle; break;

            case FidoApduResponse.InstructionUnsupported:
            case FidoApduResponse.ClassUnsupported:
            case FidoApduResponse.InvalidParam1Or2:     //used to deny signDontEnforceUserPresence (p1=0x08)
                Type = FidoError.UnsupportedOperation;
                break;

            case FidoApduResponse.InvalidLength: Type = FidoError.ProtocolViolation; break;

            default:
                Type = FidoError.ProtocolViolation;
                break;
            }
        }
예제 #2
0
 internal FidoException(FidoError type, string message) : base(message)
 {
     StatusCode = FidoApduResponse.Ok;
     Type       = type;
 }
예제 #3
0
 internal FidoException(FidoError type)
 {
     StatusCode = FidoApduResponse.Ok;
     Type       = type;
 }