private async Task <bool> Sign() { var tx_hex = await Serialize(); signatures = (await signatureProvider.Sign(this.ChainId, Hex.HexToBytes(tx_hex))).ToArray(); return(true); }
/// <summary> /// Gets the Base64Url of signature. /// </summary> /// <returns>A string encoded of signature.</returns> public string ToSigntureBase64Url() { if (signature == null || !signature.CanSign) { return(signatureCache ?? string.Empty); } var bytes = signature.Sign($"{ToHeaderBase64Url()}.{ToPayloadBase64Url()}", Encoding.ASCII); return(WebFormat.Base64UrlEncode(bytes)); }
public T Sign <T>(ISignatureProvider provider) where T : class { if (NeedsSignature) { //Validate IdCard before starting to generate Assertion new IdCardValidator().ValidateIdCard(this); //Generate unsigned assertion here based on IdCard, and sign it Xassertion = provider.Sign(GenerateAssertion()); LastDomOperation = SIGNED; NeedsSignature = false; } return(GetAssertion <T>()); }
/// <summary> /// Computes the signature for the specified hash value. /// </summary> /// <param name="sign">The signature provider.</param> /// <param name="value">The value to sign.</param> /// <param name="encoding">The text encoding.</param> /// <returns>The signature for the specified hash value.</returns> public static byte[] Sign(this ISignatureProvider sign, string value, Encoding encoding = null) { return(sign.Sign((encoding ?? Encoding.UTF8).GetBytes(value))); }