public static object ParseRequest(byte[] request) { if (request.Length < 1) { Console.Error.WriteLine("Received request with no bytes"); return(new Common.InvalidRequest()); } if (request[0] == 1) { return(Common.GetQuoteRequest.ParseRequest(request)); } if (request[0] == 2) { return(AdvanceCounterRequest.ParseRequest(request)); } Console.Error.WriteLine("Received request with invalid type"); return(new Common.InvalidRequest()); }
public byte[] HandleRequest(byte[] requestBytes) { object request = NotaryRequest.ParseRequest(requestBytes); if (request is Common.GetQuoteRequest) { GetQuoteResponse getQuoteResponse = new GetQuoteResponse(0, key_pair); return(getQuoteResponse.Encode()); } if (request is AdvanceCounterRequest) { AdvanceCounterRequest r = (AdvanceCounterRequest)request; counter = counter + 1; byte[] header = new byte[1]; header[0] = 34; byte[] new_counter_value_encoding = CommonRoutines.EncodeMPBigInteger(counter); byte[] notary_statement = CommonRoutines.CombineByteArrays(header, new_counter_value_encoding, r.message); byte[] notary_attestation = key_pair.SignData(notary_statement, CryptoConfig.MapNameToOID("SHA256")); return(NotarySrvResponse.EncodeAdvanceCounterResponse(0, notary_statement, notary_attestation)); } return(InvalidResponse.Encode()); }