protected static ECCModel CreateError(Exception e, RequestObject request) { if (AuthKey == null) { throw new X1WalletException(HttpStatusCode.NoContent, "Please retry later.", null); } var responseObject = new ResponseObject <object>(); if (e is X1WalletException se) { responseObject.Status = (int)se.HttpStatusCode; responseObject.StatusText = se.Message; } else { responseObject.Status = 500; responseObject.StatusText = $"Error: {e.Message}"; } var responseJson = Serialize(responseObject); var responseJsonBytes = responseJson.ToUTF8Bytes(); var cipherV2Bytes = VCL.Encrypt(responseJsonBytes, request.CurrentPublicKey.FromBase64(), VCL.ECKeyPair.PrivateKey, AuthKey.PrivateKey); ECCModel eccModel = new ECCModel { CurrentPublicKey = VCL.ECKeyPair.PublicKey.ToHexString(), CipherV2Bytes = cipherV2Bytes.ToHexString(), AuthKey = AuthKey.PublicKey.ToHexString() }; return(eccModel); }
protected static ECCModel CreateOk <T>(T data, RequestObject request) { if (AuthKey == null) { throw new X1WalletException(HttpStatusCode.NoContent, "Please retry later.", null); } var responseObject = new ResponseObject <T> { ResponsePayload = data, Status = 200, StatusText = "OK" }; var responseJson = Serialize(responseObject); var responseJsonBytes = responseJson.ToUTF8Bytes(); var cipherV2Bytes = VCL.Encrypt(responseJsonBytes, request.CurrentPublicKey.FromBase64(), VCL.ECKeyPair.PrivateKey, AuthKey.PrivateKey); ECCModel eccModel = new ECCModel { CurrentPublicKey = VCL.ECKeyPair.PublicKey.ToHexString(), CipherV2Bytes = cipherV2Bytes.ToHexString(), AuthKey = AuthKey.PublicKey.ToHexString() }; return(eccModel); }