public static Signature CreateSignature(int version, string edgeIP, string clientIP, DateTimeOffset time, string uniqueId, string nonce, string nonceValue, string path) { var data = new G2OData(version, edgeIP, clientIP, time, uniqueId, nonce); var sign = G2OAlgorithms.ComputeSignatureValue(data.Version, nonceValue, data.Value, path); return(new Signature(data: data.Value, value: sign)); }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var signature = G2OData.CreateSignature( version: this.Version, edgeIP: this.EdgeIP, clientIP: this.ClientIP, time: DateTimeOffset.UtcNow, uniqueId: Guid.NewGuid().ToString(), nonce: this.Nonce, nonceValue: this.NonceValue, path: request.RequestUri.LocalPath); request.SetG2OSignatureHeaders(signature); return(await base.SendAsync(request, cancellationToken)); }
public bool Validate(string path, Func <string, string> keyResolver) { var nonceValue = keyResolver(this.Fields.Nonce); var recreatedSignature = G2OData.CreateSignature( version: this.Fields.Version, edgeIP: this.Fields.EdgeIP, clientIP: this.Fields.ClientIP, time: this.Fields.Time, uniqueId: this.Fields.UniqueID, nonce: this.Fields.Nonce, nonceValue: nonceValue, path: path); return(this.Value.Equals(recreatedSignature.Value)); }