コード例 #1
0
        public JwsMessage Encode <TPayload>(TPayload payload, JwsHeader protectedHeader)
        {
            protectedHeader.Algorithm = "RS256";
            if (_jwk.KeyId != null)
            {
                protectedHeader.KeyId = _jwk.KeyId;
            }
            else
            {
                protectedHeader.Key = _jwk;
            }

            var message = new JwsMessage
            {
                Payload   = Base64UrlEncoded(JsonConvert.SerializeObject(payload)),
                Protected = Base64UrlEncoded(JsonConvert.SerializeObject(protectedHeader))
            };

            message.Signature = Base64UrlEncoded(
                _rsa.SignData(Encoding.ASCII.GetBytes(message.Protected + "." + message.Payload),
                              HashAlgorithmName.SHA256,
                              RSASignaturePadding.Pkcs1));

            return(message);
        }
コード例 #2
0
            public JwsMessage Encode <TPayload, THeader>(TPayload payload, THeader protectedHeader)
            {
                var message = new JwsMessage
                {
                    Header    = new JwsHeader("RS256", jwk),
                    Payload   = Base64UrlEncoded(JsonConvert.SerializeObject(payload)),
                    Protected = Base64UrlEncoded(JsonConvert.SerializeObject(protectedHeader))
                };

                message.Signature = Base64UrlEncoded(
                    rsa.SignData(Encoding.ASCII.GetBytes(message.Protected + "." + message.Payload),
                                 HashAlgorithmName.SHA256,
                                 RSASignaturePadding.Pkcs1));

                return(message);
            }