Esempio n. 1
0
        /// <summary>
        ///  Gets the sqrl data for login.
        /// </summary>
        /// <returns>
        ///  The sqrl data for login.
        /// </returns>
        /// <param name='masterKey'>
        ///  Master key.
        /// </param>
        /// <param name='url'>
        ///  The URL.
        /// </param>
        public SqrlData GetSqrlDataForLogin(byte[] masterKey, string url)
        {
            var domain     = Utility.GetDomainFromUrl(url);
            var privateKey = _hmacGenerator.GeneratePrivateKey(masterKey, domain);

            var sqrlData = new SqrlData
            {
                Url       = Utility.GetUrlWithoutProtocol(url),
                Signature = _signer.Sign(privateKey, Utility.GetUrlWithoutProtocol(url)),
                PublicKey = _signer.MakePublicKey(privateKey)
            };

            Array.Clear(privateKey, 0, privateKey.Length);

            return(sqrlData);
        }