Beispiel #1
0
        /// <summary>
        ///   Generates a QR code bitmap for provisioning.
        /// </summary>
        public byte[] GenerateProvisioningImage(string identifier, byte[] key, int width, int height)
        {
            var KeyString    = Encoder.Base32Encode(key);
            var ProvisionUrl = Encoder.UrlEncode(string.Format("otpauth://totp/{0}?secret={1}", identifier, KeyString));

            var ChartUrl = string.Format("https://chart.googleapis.com/chart?cht=qr&chs={0}x{1}&chl={2}", width, height, ProvisionUrl);

            using (var Client = new WebClient())
            {
                return(Client.DownloadData(ChartUrl));
            }
        }
Beispiel #2
0
        /// <summary>
        ///   Generates a QR code bitmap for provisioning.
        /// </summary>
        public static string GetGQCodeImageLink(string username, byte[] key, int width, int height)
        {
            var keyString    = Encoder.Base32Encode(key);
            var provisionUrl = Encoder.UrlEncode($"otpauth://totp/{username}?secret={keyString}&issuer={Globals.SERVER_NAME}");

            var chartUrl = $"https://chart.apis.google.com/chart?cht=qr&chs={width}x{height}&chl={provisionUrl}";

            return(chartUrl);

            /*using (var client = new WebClient())
             * {
             *  return client.DownloadData(chartUrl);
             * }*/
        }
Beispiel #3
0
 /// <summary>
 ///   Encodes the key as a string
 /// </summary>
 public string EncodeKey(byte[] keyData)
 {
     return(Encoder.Base32Encode(keyData));
 }