Esempio n. 1
0
        public string Seal(string stringToSeal, string password, IronConfig options)
        {
            var date = DateTime.Now.AddMilliseconds(options.LocalTimeOffsetMsec);
            var normalizedPassword = NormalizePassword(password);
            var encrypted          = Encrypt(password, options.EncryptionConfig, stringToSeal);
            var encryptedB64       = Util.Base64UrlEncode(encrypted.EncryptedResult);
            var iv         = Util.Base64UrlEncode(encrypted.Key.Iv);
            var expiration = DateTime.Now.AddMilliseconds(options.Ttl);
            var hmacBase   = MacBase.FromParameters("", encrypted.Key.Salt, iv, encryptedB64, "");
            var hmac       = HmacWithPassword(password, options.IntegrityConfig, hmacBase.ToShortString());

            hmacBase.SetHmacSalt(hmac.Salt, hmac.Digest);
            return(hmacBase.ToString());
        }