Exemplo n.º 1
0
        static void importKeyToVaultx(JwtRsaKey key, string token, string vaultUrl)
        {
            var importRequestUrl = $"{vaultUrl}/keys/{kid}?api-version=2016-10-01";
            var req = new HttpClient();

            req.DefaultRequestHeaders.Add("Authorization", new[] { $"Bearer {token}" });
            var content = new ObjectContent <ImportKeyRequest>(new ImportKeyRequest {
                key = key
            }, new JsonMediaTypeFormatter());
            var result   = new HttpClient().PutAsync(importRequestUrl, content).Result;
            var response = result.Content.ReadAsStringAsync().Result;

            Console.WriteLine($"Import key result {result.StatusCode} {result.ReasonPhrase}\n===\n{response}\n===\n");
        }
Exemplo n.º 2
0
        static void importKeyToVault(JwtRsaKey key, string token, string vaultUrl)
        {
            var client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(async(authority, resource, scope) => await Task.FromResult(token)));
            var keyBnd = new Microsoft.Azure.KeyVault.Models.KeyBundle();

            keyBnd.Key = new Microsoft.Azure.KeyVault.WebKey.JsonWebKey {
                Kty = key.kty,
                Kid = key.kid,
                E   = Encoding.UTF8.GetBytes(key.e),
                P   = Encoding.UTF8.GetBytes(key.p),
                Q   = Encoding.UTF8.GetBytes(key.q),
                QI  = Encoding.UTF8.GetBytes(key.qi),
                DP  = Encoding.UTF8.GetBytes(key.dp),
                DQ  = Encoding.UTF8.GetBytes(key.dq)
            };
            var result = client.ImportKeyAsync(vaultUrl, key.kid, keyBnd).Result;
        }
Exemplo n.º 3
0
        public static JwtRsaKey genKey(string kid)
        {
            var rsa       = RSA.Create();
            var rsaParams = rsa.ExportParameters(true);
            var jwk       = new JwtRsaKey
            {
                kty = "RSA",
                use = "enc",
                kid = kid,
                e   = toB64(rsaParams.Exponent),
                m   = toB64(rsaParams.Modulus),
                d   = toB64(rsaParams.D),
                p   = toB64(rsaParams.P),
                q   = toB64(rsaParams.Q),
                dp  = toB64(rsaParams.DP),
                dq  = toB64(rsaParams.DQ),
                qi  = toB64(rsaParams.InverseQ)
            };

            return(jwk);
            //Console.WriteLine(JsonConvert.SerializeObject(jwk));
        }