Skip to content
Snippets Groups Projects
Commit f5c2e73c authored by Klaus Fischer's avatar Klaus Fischer
Browse files

Decryption problem with linux generated keys

parent 0d7159ff
No related branches found
No related tags found
No related merge requests found
Showing
with 241 additions and 13 deletions
......@@ -5,17 +5,17 @@ using Microsoft.IdentityModel.Tokens;
namespace FitConnect.Encryption;
public class CertificateHelper {
internal class CertificateHelper {
private readonly ILogger? _logger;
public CertificateHelper(ILogger? logger = null) {
internal CertificateHelper(ILogger? logger = null) {
_logger = logger;
}
internal async Task<bool> ValidateCertificateJsonWebKeyString(string keyJson, LogLevel logLevel,
X509Certificate2[]? rootCertificates = null) {
X509Certificate2[]? rootCertificates = null, bool isTestEnvironment = false) {
return await ValidateCertificateJsonWebKeyAsync(new JsonWebKey(keyJson), rootCertificates,
logLevel);
logLevel, isTestEnvironment);
}
internal static async Task<IList<X509Certificate2>> GetRootCertificates() {
......@@ -83,7 +83,8 @@ public class CertificateHelper {
internal async Task<bool> ValidateCertificateJsonWebKeyAsync(JsonWebKey key,
X509Certificate2[]? root = null,
LogLevel logLevel = LogLevel.Error) {
LogLevel logLevel = LogLevel.Error,
bool isTestEnvironment = false) {
var certificates = key.X5c.Select(s => new X509Certificate2(Convert.FromBase64String(s)))
.ToList();
......@@ -92,7 +93,7 @@ public class CertificateHelper {
return false;
}
var fitConnectRequirements = key.MatchesFitConnectRequirements();
var fitConnectRequirements = key.MatchesFitConnectRequirements(isTestEnvironment);
if (!fitConnectRequirements) {
_logger?.Log(logLevel, "Certificate does not match FIT-Connect requirements");
return false;
......@@ -106,8 +107,8 @@ public class CertificateHelper {
}
public static class CertificateExtensions {
public static bool MatchesFitConnectRequirements(this JsonWebKey key) {
return key.X5c.Count == EncryptionSettings.CertificateChainLength
public static bool MatchesFitConnectRequirements(this JsonWebKey key, bool isTestEnvironment) {
return key.X5c.Count == (isTestEnvironment ? 1 : EncryptionSettings.CertificateChainLength)
&& key.KeySize == EncryptionSettings.MinKeySize
&& (key.Alg == EncryptionSettings.SigningAlgorithm ||
key.Alg == EncryptionSettings.EncryptionAlgorithm)
......
......@@ -14,7 +14,7 @@ namespace JwkGenerator {
string PublicSignatureVerificationKey, string PrivateSigningKey);
public class JwkGenerator {
private X509Certificate2 CreateSelfSignedCertificate() {
private X509Certificate2 CreateSelfSignedCertificate() {
// Erzeuge ein neues RSA-Schlüsselpaar
using RSA rsa = RSA.Create();
rsa.KeySize = 4096;
......@@ -35,13 +35,13 @@ namespace JwkGenerator {
return cert;
}
private string CertToX5c(X509Certificate2 cert) {
private string CertToX5c(X509Certificate2 cert) {
byte[] certData = cert.Export(X509ContentType.Cert);
string base64Cert = Convert.ToBase64String(certData);
return base64Cert;
}
public (string publicKeyEncryption, string publicKeySigning, string privateKeyDecryption, string
public (string publicKeyEncryption, string publicKeySigning, string privateKeyDecryption, string
privateKeySigning) GenerateKeys(string outputDirectory) {
// Erzeuge ein Verschlüsselungsschlüsselpaar
X509Certificate2 encryptionCert = CreateSelfSignedCertificate();
......@@ -119,7 +119,10 @@ namespace JwkGenerator {
Console.WriteLine($"Wrote JWK representation of decryption private key to {privateKeyDecryptionFile}");
Console.WriteLine($"Wrote JWK representation of signing private key to {privateKeySigningFile}");
return (publicKeyEncryptionFile, publicKeySigningFile, privateKeyDecryptionFile, privateKeySigningFile);
return (JsonConvert.SerializeObject(encryptionJwk, serializerSettings),
JsonConvert.SerializeObject(signingJwk, serializerSettings),
JsonConvert.SerializeObject(decryptionJwk, serializerSettings),
JsonConvert.SerializeObject(verificationJwk, serializerSettings));
}
}
......
......@@ -23,7 +23,7 @@ public class JwkGeneratorTest {
var plainText = "Test";
var generator = new JwkGenerator.JwkGenerator();
var (jwkEncryptionPublic, jwkDecryptionPrivate, _, __) =
generator.GenerateKeys("");
generator.GenerateKeys("../../../");
var encryptionEngine = new FitEncryption(null);
......
{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ","k":null,"key_id":null,"key_ops":["unwrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"alg":"PS512","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","k":null,"key_id":null,"key_ops":["verify"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{
"additional_data": {},
"alg": "RSA-OAEP-256",
"crv": null,
"d": null,
"dp": null,
"dq": null,
"e": "MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ",
"k": null,
"key_id": null,
"key_ops": [
"wrapKey"
],
"kid": null,
"kty": "RSA",
"n": "MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ",
"oth": null,
"p": null,
"q": null,
"qi": null,
"use": null,
"x": null,
"x5c": [
"MIIFEjCCAvqgAwIBAgIIEljz7B3shhkwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIxMDYyMjM5WhcNMzMwNjIxMDYyMjM5WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMcM/eBZwYrDXL1qViI15xS6WxwACs3hqdGUx2J7XVz0X6lxGg+XEFzRGy8ktxWHPUttrzBvSfGQ2ZiHXNdTb1KrOFQcKTMg+wcB5mkL354XuCL+Z5LmKRLEwzlS3jzrxUTA8nrflLl4BnpEVv+GIB8ZRMb47qtTStrZOZkfhzC66Pv/v2gLquFsLXKpStihAyzkS40epIrAK4tv5PVGWaueehhnTwRFpmZFvuefzIFwwMW+MXccIm6i3yLnPDCJqCaKb8fyzEHtPNO+Yh/TwizyLS6QjWy+/TEAwLLzJsbmYHkQlFLdCMiDMWsi50CLNNELo0EkKhpyRaiX8pn3NJua5hvazeBD4NR38NYHteXncvE67lkqioVMnLcgTUbYHTp8O9K9dxhZWS9s/I317wuO9E1Azn9U5qlKFE5A9IpcEcR8NHlgC+xGdNltAaHKDcGFUpxV8Mor2xzeiSiTObyU92GYrfLHeTg7jo0OrF2/qBksNfaaeNq/1SvLxz9rqOqTJgJy4O1EIp4ZYA3tmSHzJs0tpCc194cnN0uB1ox8qgFkWWTcUtuMkSkv2YfSvpInR37UeSLE5l0KQq83SxwDLZiJ8Ats+6sBTA+XnSWmFIr50N30OGRA7lCdvdYrQd6Eq4jQ+14LFhvvroQP4xLVC52ncu+BAXtzWMTSd4KFAgMBAAEwDQYJKoZIhvcNAQENBQADggIBAJZs7DofN/r5nlmb5J1BPG2tAe47ZITjfKqiIdgS7WZ+Li4L78dLkpIFEnqz/rit+6sY2xi+HF0K843z83QUjyk4wui4TDoyNPUMpjf+YxlDNvJBXvE7R3djNX0FDWkBYsoemhUiI/2gdEgilC80W4p3LsZyo6/DanuEKEKChsbm8LUCEEe5jYOXBJUtuUruswWImo0C0qaaOVZkZ6K+Qczm2OcZ/Is/RJlc7ipPDg37PCifyHlayDtpgHHWb7w9neZ76VjEtfPT0N3UBdgyFQchPJXFBhO/YdbNF7d/M+DNGm+TjbYPQHD94W5gzAIOqCGi0I/b9K9RVO7JcY6qPD/odHvvhWxGOUmM/Vc2SSWoEyMWMJrCmlHCGSkGzWJ8pQdTTcRkpEsOP4Jhsl8WOmLLmu3oco8/+JAjCtRXeuuRztTE7AMeQwyi19DVMeRjmYS80rMSzh7Yx/RZ22Y353jZHWJttAV6G2NmorBH02FVdbuwBRh89WqxmWkl3kTjw6lY8ylUXavxXYR/vvE4GC/RH3TqXTtz/RV5K6zY+Eh8qsYVa/Il1qObLoddnFh5goTfOj9Uwc7BpoTgECZ3riuqaTzHgAbfj7tAZ4Yiv95v0mjv8rgYZNA7YwKwE1MKevR7nHDosXYdtFHT9TXBmCIFJbzP14qtLkYSlQwLdeek"
],
"x5t": null,
"x5t_s256": null,
"x5u": null,
"y": null,
"key_size": 4208,
"has_private_key": false,
"crypto_provider_factory": {
"crypto_provider_cache": {},
"custom_crypto_provider": null,
"cache_signature_providers": true,
"signature_provider_object_pool_cache_size": 40
}
}
\ No newline at end of file
{"additional_data":{},"alg":"PS512","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","k":null,"key_id":null,"key_ops":["sign"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEzCCAvugAwIBAgIJAJ8N5E8BmPb5MA0GCSqGSIb3DQEBDQUAMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxUZXN0YmVob2VyZGUxIzAhBgNVBAMTGkZJVCBDb25uZWN0IFRlc3R6ZXJ0aWZpa2F0MB4XDTIzMDYyMTA2MjI0MFoXDTMzMDYyMTA2MjI0MFowSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCdyyhMp95DjQYlSNdW+UPqDAxjRrvDHMUHj7/zfXFB495TX5tmByKRUnOb8Nre6lbNgbeTBNpaKatlQMrRkWjbKjM5I4Fnuoh2ndREJyvyj7AkcF4urAsqEsZEXFS3I8qT+n32K+dx1yJMvA10BlPs/2vlleBiKmdVZymeFOwCRNlUBEll37NgwuX2WEH/oZ+4VUMGN6v/OGL3bshtCIZBHyfGm6qRdoQfFn05Zi8tibYP2Dtcn1cvgM9vpphSfQr94OTpRN6CbMv/+rZdQlsQOjVYuGLtWoBfB1NqtSgu2KFuRTehqs6oZMC9RyExb3ET9YMmscKe6YOJ4x9L2aAtNuhi2YcI/ArisdbWpV/VkOD3V+NE4JmF8MXHANkyZJ7PReYKdXL+O8SfPAOG1h3uuiyM5dMqii/pHLpdpQs/isZW2Xlh4dN6rcl14yeUt144AZ1bQAhUTpIPAqbQJF6eapb4cHT8crPI6Lo0FP7ZdLGPjQqsbLY+2XTzifSzIAXeAsxECrdsB8VqSnM35XHVQmuWlFKQ/wj21VVpsox4QbMOaL8FXSmCFpwVVAOwXklPXUsqR8Ym0aA8Nq2Ra8iIh6B04QQa2G0iuCsSnso5a3EaaNsRwuoEledV4jEB8pRgY0ZyzqpXYPgC2CuDCpsNbId8dANvhJDvBISFfkDwIDAQABMA0GCSqGSIb3DQEBDQUAA4ICAQCVo2hdHsbkxCCvRnrUa7Jy10vVTO/VJhv2Msw7r9XPhby9B4Qgt0CGvG+/YckbrsJI2XFELrrGlG1f64ylt7hDuIa19YW264JKVrJCNPCIGOv9RVLUI00VtT7hZFUmrJGvs4QkEXLQ/7zmsFhme0shoVqvBWQ0mla6I5wrEcq5g3Gf3PFzI1B7e6pyQvaf0qEZp8+1fvC/RshYiYbpJtizJEREqlHoYLuv9gJFZfg6/4CZqFWAPn6vBoI+hOTTDwwcy2DdZAUNBevniy+6pKzyNwTUP54/dlf0L9ouqQLRPNRQF+8Ta7+OW2p6OwmkT7FRss/55kxSgXJrj2ghz6nYUXsIZucuLeZOs1gcsJ/HO9hQNP/td4gAqFCPw6WaRPffvB0cgQgYKtI1geV16zIuI82VzOurs9kq3/UJFEDdCDY8aO/5dHb56Ibu0c5LBnDeGXLlH+87zOzIcby1WVzPJfTBQN62GvsLTd/jjedvnp1/7Pwqnct4QFim0qWISNnBkF2VkZKu7BIvGvYnoBdayrQw1pKjAYwAzFACRiiJHDEFGnLf6pSncxeqdab8m+250Ox9H5fnF2lNz/zVzDaiKZAJJbv3JRZhpB5GQh6Pjgc+J0Y5ZRR5alDN+xcMJ2GngKv4mBlRsBmnQUIh2UsTmZx3N+OjK+eqghOvhSJbXA=="],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"keys":[{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ","k":null,"key_id":null,"key_ops":["wrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEAxwz94FnBisNcvWpWIjXnFLpbHAAKzeGp0ZTHYntdXPRfqXEaD5cQXNEbLyS3FYc9S22vMG9J8ZDZmIdc11NvUqs4VBwpMyD7BwHmaQvfnhe4Iv5nkuYpEsTDOVLePOvFRMDyet-UuXgGekRW_4YgHxlExvjuq1NK2tk5mR-HMLro-_-_aAuq4WwtcqlK2KEDLORLjR6kisAri2_k9UZZq556GGdPBEWmZkW-55_MgXDAxb4xdxwibqLfIuc8MImoJopvx_LMQe08075iH9PCLPItLpCNbL79MQDAsvMmxuZgeRCUUt0IyIMxayLnQIs00QujQSQqGnJFqJfymfc0m5rmG9rN4EPg1Hfw1ge15edy8TruWSqKhUyctyBNRtgdOnw70r13GFlZL2z8jfXvC470TUDOf1TmqUoUTkD0ilwRxHw0eWAL7EZ02W0BocoNwYVSnFXwyivbHN6JKJM5vJT3YZit8sd5ODuOjQ6sXb-oGSw19pp42r_VK8vHP2uo6pMmAnLg7UQinhlgDe2ZIfMmzS2kJzX3hyc3S4HWjHyqAWRZZNxS24yRKS_Zh9K-kidHftR5IsTmXQpCrzdLHAMtmInwC2z7qwFMD5edJaYUivnQ3fQ4ZEDuUJ291itB3oSriND7XgsWG--uhA_jEtULnady74EBe3NYxNJ3goUCAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEjCCAvqgAwIBAgIIEljz7B3shhkwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIxMDYyMjM5WhcNMzMwNjIxMDYyMjM5WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMcM/eBZwYrDXL1qViI15xS6WxwACs3hqdGUx2J7XVz0X6lxGg+XEFzRGy8ktxWHPUttrzBvSfGQ2ZiHXNdTb1KrOFQcKTMg+wcB5mkL354XuCL+Z5LmKRLEwzlS3jzrxUTA8nrflLl4BnpEVv+GIB8ZRMb47qtTStrZOZkfhzC66Pv/v2gLquFsLXKpStihAyzkS40epIrAK4tv5PVGWaueehhnTwRFpmZFvuefzIFwwMW+MXccIm6i3yLnPDCJqCaKb8fyzEHtPNO+Yh/TwizyLS6QjWy+/TEAwLLzJsbmYHkQlFLdCMiDMWsi50CLNNELo0EkKhpyRaiX8pn3NJua5hvazeBD4NR38NYHteXncvE67lkqioVMnLcgTUbYHTp8O9K9dxhZWS9s/I317wuO9E1Azn9U5qlKFE5A9IpcEcR8NHlgC+xGdNltAaHKDcGFUpxV8Mor2xzeiSiTObyU92GYrfLHeTg7jo0OrF2/qBksNfaaeNq/1SvLxz9rqOqTJgJy4O1EIp4ZYA3tmSHzJs0tpCc194cnN0uB1ox8qgFkWWTcUtuMkSkv2YfSvpInR37UeSLE5l0KQq83SxwDLZiJ8Ats+6sBTA+XnSWmFIr50N30OGRA7lCdvdYrQd6Eq4jQ+14LFhvvroQP4xLVC52ncu+BAXtzWMTSd4KFAgMBAAEwDQYJKoZIhvcNAQENBQADggIBAJZs7DofN/r5nlmb5J1BPG2tAe47ZITjfKqiIdgS7WZ+Li4L78dLkpIFEnqz/rit+6sY2xi+HF0K843z83QUjyk4wui4TDoyNPUMpjf+YxlDNvJBXvE7R3djNX0FDWkBYsoemhUiI/2gdEgilC80W4p3LsZyo6/DanuEKEKChsbm8LUCEEe5jYOXBJUtuUruswWImo0C0qaaOVZkZ6K+Qczm2OcZ/Is/RJlc7ipPDg37PCifyHlayDtpgHHWb7w9neZ76VjEtfPT0N3UBdgyFQchPJXFBhO/YdbNF7d/M+DNGm+TjbYPQHD94W5gzAIOqCGi0I/b9K9RVO7JcY6qPD/odHvvhWxGOUmM/Vc2SSWoEyMWMJrCmlHCGSkGzWJ8pQdTTcRkpEsOP4Jhsl8WOmLLmu3oco8/+JAjCtRXeuuRztTE7AMeQwyi19DVMeRjmYS80rMSzh7Yx/RZ22Y353jZHWJttAV6G2NmorBH02FVdbuwBRh89WqxmWkl3kTjw6lY8ylUXavxXYR/vvE4GC/RH3TqXTtz/RV5K6zY+Eh8qsYVa/Il1qObLoddnFh5goTfOj9Uwc7BpoTgECZ3riuqaTzHgAbfj7tAZ4Yiv95v0mjv8rgYZNA7YwKwE1MKevR7nHDosXYdtFHT9TXBmCIFJbzP14qtLkYSlQwLdeek"],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}},{"additional_data":{},"alg":"PS512","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","k":null,"key_id":null,"key_ops":["sign"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEAqQncsoTKfeQ40GJUjXVvlD6gwMY0a7wxzFB4-_831xQePeU1-bZgcikVJzm_Da3upWzYG3kwTaWimrZUDK0ZFo2yozOSOBZ7qIdp3URCcr8o-wJHBeLqwLKhLGRFxUtyPKk_p99ivncdciTLwNdAZT7P9r5ZXgYipnVWcpnhTsAkTZVARJZd-zYMLl9lhB_6GfuFVDBjer_zhi927IbQiGQR8nxpuqkXaEHxZ9OWYvLYm2D9g7XJ9XL4DPb6aYUn0K_eDk6UTegmzL__q2XUJbEDo1WLhi7VqAXwdTarUoLtihbkU3oarOqGTAvUchMW9xE_WDJrHCnumDieMfS9mgLTboYtmHCPwK4rHW1qVf1ZDg91fjROCZhfDFxwDZMmSez0XmCnVy_jvEnzwDhtYd7rosjOXTKoov6Ry6XaULP4rGVtl5YeHTeq3JdeMnlLdeOAGdW0AIVE6SDwKm0CRenmqW-HB0_HKzyOi6NBT-2XSxj40KrGy2Ptl084n0syAF3gLMRAq3bAfFakpzN-Vx1UJrlpRSkP8I9tVVabKMeEGzDmi_BV0pghacFVQDsF5JT11LKkfGJtGgPDatkWvIiIegdOEEGthtIrgrEp7KOWtxGmjbEcLqBJXnVeIxAfKUYGNGcs6qV2D4AtgrgwqbDWyHfHQDb4SQ7wSEhX5A8CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEzCCAvugAwIBAgIJAJ8N5E8BmPb5MA0GCSqGSIb3DQEBDQUAMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxUZXN0YmVob2VyZGUxIzAhBgNVBAMTGkZJVCBDb25uZWN0IFRlc3R6ZXJ0aWZpa2F0MB4XDTIzMDYyMTA2MjI0MFoXDTMzMDYyMTA2MjI0MFowSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCdyyhMp95DjQYlSNdW+UPqDAxjRrvDHMUHj7/zfXFB495TX5tmByKRUnOb8Nre6lbNgbeTBNpaKatlQMrRkWjbKjM5I4Fnuoh2ndREJyvyj7AkcF4urAsqEsZEXFS3I8qT+n32K+dx1yJMvA10BlPs/2vlleBiKmdVZymeFOwCRNlUBEll37NgwuX2WEH/oZ+4VUMGN6v/OGL3bshtCIZBHyfGm6qRdoQfFn05Zi8tibYP2Dtcn1cvgM9vpphSfQr94OTpRN6CbMv/+rZdQlsQOjVYuGLtWoBfB1NqtSgu2KFuRTehqs6oZMC9RyExb3ET9YMmscKe6YOJ4x9L2aAtNuhi2YcI/ArisdbWpV/VkOD3V+NE4JmF8MXHANkyZJ7PReYKdXL+O8SfPAOG1h3uuiyM5dMqii/pHLpdpQs/isZW2Xlh4dN6rcl14yeUt144AZ1bQAhUTpIPAqbQJF6eapb4cHT8crPI6Lo0FP7ZdLGPjQqsbLY+2XTzifSzIAXeAsxECrdsB8VqSnM35XHVQmuWlFKQ/wj21VVpsox4QbMOaL8FXSmCFpwVVAOwXklPXUsqR8Ym0aA8Nq2Ra8iIh6B04QQa2G0iuCsSnso5a3EaaNsRwuoEledV4jEB8pRgY0ZyzqpXYPgC2CuDCpsNbId8dANvhJDvBISFfkDwIDAQABMA0GCSqGSIb3DQEBDQUAA4ICAQCVo2hdHsbkxCCvRnrUa7Jy10vVTO/VJhv2Msw7r9XPhby9B4Qgt0CGvG+/YckbrsJI2XFELrrGlG1f64ylt7hDuIa19YW264JKVrJCNPCIGOv9RVLUI00VtT7hZFUmrJGvs4QkEXLQ/7zmsFhme0shoVqvBWQ0mla6I5wrEcq5g3Gf3PFzI1B7e6pyQvaf0qEZp8+1fvC/RshYiYbpJtizJEREqlHoYLuv9gJFZfg6/4CZqFWAPn6vBoI+hOTTDwwcy2DdZAUNBevniy+6pKzyNwTUP54/dlf0L9ouqQLRPNRQF+8Ta7+OW2p6OwmkT7FRss/55kxSgXJrj2ghz6nYUXsIZucuLeZOs1gcsJ/HO9hQNP/td4gAqFCPw6WaRPffvB0cgQgYKtI1geV16zIuI82VzOurs9kq3/UJFEDdCDY8aO/5dHb56Ibu0c5LBnDeGXLlH+87zOzIcby1WVzPJfTBQN62GvsLTd/jjedvnp1/7Pwqnct4QFim0qWISNnBkF2VkZKu7BIvGvYnoBdayrQw1pKjAYwAzFACRiiJHDEFGnLf6pSncxeqdab8m+250Ox9H5fnF2lNz/zVzDaiKZAJJbv3JRZhpB5GQh6Pjgc+J0Y5ZRR5alDN+xcMJ2GngKv4mBlRsBmnQUIh2UsTmZx3N+OjK+eqghOvhSJbXA=="],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}],"skip_unresolved_json_web_keys":true}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.IO;
using FitConnect.Encryption;
using FluentAssertions;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
namespace SenderTest;
[TestFixture]
public class CertificateTests {
private List<string> _keys = null!;
private ILogger _logger = null!;
string pathRoot = "./Certificates/SelfGenerated";
[SetUp]
public void SetUp() {
_logger = LoggerFactory.Create(
builder => {
builder.AddConsole();
builder.SetMinimumLevel(LogLevel.Trace);
}).CreateLogger("E2E Test");
_keys = new List<string>() {
File.ReadAllText(pathRoot + "/privateKey_decryption.json"),
File.ReadAllText(pathRoot + "/privateKey_signing.json"),
File.ReadAllText(pathRoot + "/publicKey_encryption.json"),
File.ReadAllText(pathRoot + "/publicKey_signature_verification.json")
};
}
[Test]
public void TestSelfGeneratedCertificates() {
var validator = new FitConnect.Encryption.CertificateHelper(_logger);
foreach (var key in _keys) {
var valid = validator.ValidateCertificateJsonWebKeyString(key, LogLevel.Warning, isTestEnvironment: true)
.Result;
Console.WriteLine(valid ? "Valid" : "Invalid");
}
}
[Test]
// Using FitConnect.Encryption to encrypt and decrypt a test message
public void TestEncryption() {
var message = "Hello World!";
var encryptionKey = File.ReadAllText(pathRoot + "/publicKey_encryption.json");
var decryptionKey = File.ReadAllText(pathRoot + "/privateKey_decryption.json");
var encryptor = new FitConnect.Encryption.FitEncryption(_logger);
var encryptedMessage = encryptor.Encrypt(message, encryptionKey);
var result = new FitEncryption(new() { decryptionKey }, "", _logger).Decrypt(encryptedMessage);
result.plainText.Should().Be(message);
}
}
{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","k":null,"key_id":null,"key_ops":["wrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEjCCAvqgAwIBAgIIWYFkRlvrgEMwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIyMTIyMTA4WhcNMzMwNjIyMTIyMTA4WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOqaqbrwbYVhY/ZLAS6+gCDVrNO5Y2KUmiDuI087+gzChhFUf7m5qVX84UO6tCsCKj63kbvu4BMW60oTJChAhCCqCuWNTOHpDQMEQNs5jUUYHX6YjJDgToeGIGwqYehbVAJaKAAqZpX7+lljsciAx8DiW6wxkNPbXFJ+4d7ln2dVTZ1LPxZjhDv0isBscN8XqgiCJHVF2NTLHQkAia0yfXOIBfoeYYmpENzfA4yn/bKEspDFNRkBB4zbKSZf3WfRnvtaiYr+HAV+mdl+y+4S+lRXfimpBh2ILSopJouXiv3HxawhwmZKYKEjxz4FqxOaMyd9YDjsqsKcCr0FiFw922IaBA8GnqfCbNJtfXlVxme0TqmSPI0BrLQ4AcHt4n8wUwG1NxwUquGY5xcDl78LBCFCRgspnvYMvwaZCYaWl/H/IQigUjE7Q2ifkLixoRrVKv/BKDga9/pQm514cT8NnkyFB6FRmT+48WUL/Rq7/MCnzzHwV9oN6Y2Byj0bWI4Ka6vobojfm24F2XNgI3iWJjYwiH2c8XPj3SfZw0Z86ivOIUSTgSDb/nXOQVXnS9nxEh53xGIL6HX+D/aWoeIlqPaGSYcJ4fDb5y4dz+XkxFm5iJEq+2DSLNedX5RQYCd3Ljgb8tLbd7gBeLIyZjbx2Wyb2XDKEPlM1f82zSFIXLB9AgMBAAEwDQYJKoZIhvcNAQENBQADggIBAHv9pALYDQ0Oomvp0yaytV96xoUjM2UmLztRTwccgIuWTfD3I5XBdriRqZJRPYnLoQbmz2aphTaqQpZ2/HzEipF7Jbueh+8bgs7Ch8vP3WXPfM3rEvB6yGkWY6TeJiR86Bo85wELbgAIzqniHpsegTfyhNo6c9XhAtY3xRclq1KbLndOusC399sjLZUYTOArXpz49D8miSnbpJXEeG6CRf00JqE9PM6OIrhH9IJx67F6Mip0AL1YiMfYfOhLIZTz4f6YDLW2yjikiCentBbexTFMLuZlUQUadrBuE1JoMtO8Mh1bz3r+zNiM219wsguVNmVc3ujl+Zhbv4aFf3eRMaK0ZCgmqpL6nF9M1df38fy2NGjlj0XcEUpdZEAHrwwrk+A6ExvZOlYTYmYnew/Au7skQsrKQ1NXhwecwFFy51EK9bImHyWJRixry0RZWAr1WD1gOxCEsHkiAF2meAFvsttIWJwQju360WiltaURoNvll6aU/92J4/gjedQSdTbVQgNs/hC48D5LJrANbticfNHXXPWHGQsNS9xOoaN7c9g8w+b88ew2cIeYmNEKcogaJubx06VKMbhcYfBb2LVuNNpH+q0bWNJ7qksitC1E+lj0G/5Bicu5UoZu4rVQSz75wKswsA1QZ+jcMbAtBBciQd0Dw2prg9Fx1YLRcOxTlrBY"],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","k":null,"key_id":null,"key_ops":["unwrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","k":null,"key_id":null,"key_ops":["wrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEjCCAvqgAwIBAgIIWYFkRlvrgEMwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIyMTIyMTA4WhcNMzMwNjIyMTIyMTA4WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOqaqbrwbYVhY/ZLAS6+gCDVrNO5Y2KUmiDuI087+gzChhFUf7m5qVX84UO6tCsCKj63kbvu4BMW60oTJChAhCCqCuWNTOHpDQMEQNs5jUUYHX6YjJDgToeGIGwqYehbVAJaKAAqZpX7+lljsciAx8DiW6wxkNPbXFJ+4d7ln2dVTZ1LPxZjhDv0isBscN8XqgiCJHVF2NTLHQkAia0yfXOIBfoeYYmpENzfA4yn/bKEspDFNRkBB4zbKSZf3WfRnvtaiYr+HAV+mdl+y+4S+lRXfimpBh2ILSopJouXiv3HxawhwmZKYKEjxz4FqxOaMyd9YDjsqsKcCr0FiFw922IaBA8GnqfCbNJtfXlVxme0TqmSPI0BrLQ4AcHt4n8wUwG1NxwUquGY5xcDl78LBCFCRgspnvYMvwaZCYaWl/H/IQigUjE7Q2ifkLixoRrVKv/BKDga9/pQm514cT8NnkyFB6FRmT+48WUL/Rq7/MCnzzHwV9oN6Y2Byj0bWI4Ka6vobojfm24F2XNgI3iWJjYwiH2c8XPj3SfZw0Z86ivOIUSTgSDb/nXOQVXnS9nxEh53xGIL6HX+D/aWoeIlqPaGSYcJ4fDb5y4dz+XkxFm5iJEq+2DSLNedX5RQYCd3Ljgb8tLbd7gBeLIyZjbx2Wyb2XDKEPlM1f82zSFIXLB9AgMBAAEwDQYJKoZIhvcNAQENBQADggIBAHv9pALYDQ0Oomvp0yaytV96xoUjM2UmLztRTwccgIuWTfD3I5XBdriRqZJRPYnLoQbmz2aphTaqQpZ2/HzEipF7Jbueh+8bgs7Ch8vP3WXPfM3rEvB6yGkWY6TeJiR86Bo85wELbgAIzqniHpsegTfyhNo6c9XhAtY3xRclq1KbLndOusC399sjLZUYTOArXpz49D8miSnbpJXEeG6CRf00JqE9PM6OIrhH9IJx67F6Mip0AL1YiMfYfOhLIZTz4f6YDLW2yjikiCentBbexTFMLuZlUQUadrBuE1JoMtO8Mh1bz3r+zNiM219wsguVNmVc3ujl+Zhbv4aFf3eRMaK0ZCgmqpL6nF9M1df38fy2NGjlj0XcEUpdZEAHrwwrk+A6ExvZOlYTYmYnew/Au7skQsrKQ1NXhwecwFFy51EK9bImHyWJRixry0RZWAr1WD1gOxCEsHkiAF2meAFvsttIWJwQju360WiltaURoNvll6aU/92J4/gjedQSdTbVQgNs/hC48D5LJrANbticfNHXXPWHGQsNS9xOoaN7c9g8w+b88ew2cIeYmNEKcogaJubx06VKMbhcYfBb2LVuNNpH+q0bWNJ7qksitC1E+lj0G/5Bicu5UoZu4rVQSz75wKswsA1QZ+jcMbAtBBciQd0Dw2prg9Fx1YLRcOxTlrBY"],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","k":null,"key_id":null,"key_ops":["unwrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}
\ No newline at end of file
{"additional_data":{},"keys":[{"additional_data":{},"alg":"RSA-OAEP-256","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","k":null,"key_id":null,"key_ops":["wrapKey"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA6pqpuvBthWFj9ksBLr6AINWs07ljYpSaIO4jTzv6DMKGEVR_ubmpVfzhQ7q0KwIqPreRu-7gExbrShMkKECEIKoK5Y1M4ekNAwRA2zmNRRgdfpiMkOBOh4YgbCph6FtUAlooACpmlfv6WWOxyIDHwOJbrDGQ09tcUn7h3uWfZ1VNnUs_FmOEO_SKwGxw3xeqCIIkdUXY1MsdCQCJrTJ9c4gF-h5hiakQ3N8DjKf9soSykMU1GQEHjNspJl_dZ9Ge-1qJiv4cBX6Z2X7L7hL6VFd-KakGHYgtKikmi5eK_cfFrCHCZkpgoSPHPgWrE5ozJ31gOOyqwpwKvQWIXD3bYhoEDwaep8Js0m19eVXGZ7ROqZI8jQGstDgBwe3ifzBTAbU3HBSq4ZjnFwOXvwsEIUJGCyme9gy_BpkJhpaX8f8hCKBSMTtDaJ-QuLGhGtUq_8EoOBr3-lCbnXhxPw2eTIUHoVGZP7jxZQv9Grv8wKfPMfBX2g3pjYHKPRtYjgprq-huiN-bbgXZc2AjeJYmNjCIfZzxc-PdJ9nDRnzqK84hRJOBINv-dc5BVedL2fESHnfEYgvodf4P9pah4iWo9oZJhwnh8NvnLh3P5eTEWbmIkSr7YNIs151flFBgJ3cuOBvy0tt3uAF4sjJmNvHZbJvZcMoQ-UzV_zbNIUhcsH0CAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEjCCAvqgAwIBAgIIWYFkRlvrgEMwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIyMTIyMTA4WhcNMzMwNjIyMTIyMTA4WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOqaqbrwbYVhY/ZLAS6+gCDVrNO5Y2KUmiDuI087+gzChhFUf7m5qVX84UO6tCsCKj63kbvu4BMW60oTJChAhCCqCuWNTOHpDQMEQNs5jUUYHX6YjJDgToeGIGwqYehbVAJaKAAqZpX7+lljsciAx8DiW6wxkNPbXFJ+4d7ln2dVTZ1LPxZjhDv0isBscN8XqgiCJHVF2NTLHQkAia0yfXOIBfoeYYmpENzfA4yn/bKEspDFNRkBB4zbKSZf3WfRnvtaiYr+HAV+mdl+y+4S+lRXfimpBh2ILSopJouXiv3HxawhwmZKYKEjxz4FqxOaMyd9YDjsqsKcCr0FiFw922IaBA8GnqfCbNJtfXlVxme0TqmSPI0BrLQ4AcHt4n8wUwG1NxwUquGY5xcDl78LBCFCRgspnvYMvwaZCYaWl/H/IQigUjE7Q2ifkLixoRrVKv/BKDga9/pQm514cT8NnkyFB6FRmT+48WUL/Rq7/MCnzzHwV9oN6Y2Byj0bWI4Ka6vobojfm24F2XNgI3iWJjYwiH2c8XPj3SfZw0Z86ivOIUSTgSDb/nXOQVXnS9nxEh53xGIL6HX+D/aWoeIlqPaGSYcJ4fDb5y4dz+XkxFm5iJEq+2DSLNedX5RQYCd3Ljgb8tLbd7gBeLIyZjbx2Wyb2XDKEPlM1f82zSFIXLB9AgMBAAEwDQYJKoZIhvcNAQENBQADggIBAHv9pALYDQ0Oomvp0yaytV96xoUjM2UmLztRTwccgIuWTfD3I5XBdriRqZJRPYnLoQbmz2aphTaqQpZ2/HzEipF7Jbueh+8bgs7Ch8vP3WXPfM3rEvB6yGkWY6TeJiR86Bo85wELbgAIzqniHpsegTfyhNo6c9XhAtY3xRclq1KbLndOusC399sjLZUYTOArXpz49D8miSnbpJXEeG6CRf00JqE9PM6OIrhH9IJx67F6Mip0AL1YiMfYfOhLIZTz4f6YDLW2yjikiCentBbexTFMLuZlUQUadrBuE1JoMtO8Mh1bz3r+zNiM219wsguVNmVc3ujl+Zhbv4aFf3eRMaK0ZCgmqpL6nF9M1df38fy2NGjlj0XcEUpdZEAHrwwrk+A6ExvZOlYTYmYnew/Au7skQsrKQ1NXhwecwFFy51EK9bImHyWJRixry0RZWAr1WD1gOxCEsHkiAF2meAFvsttIWJwQju360WiltaURoNvll6aU/92J4/gjedQSdTbVQgNs/hC48D5LJrANbticfNHXXPWHGQsNS9xOoaN7c9g8w+b88ew2cIeYmNEKcogaJubx06VKMbhcYfBb2LVuNNpH+q0bWNJ7qksitC1E+lj0G/5Bicu5UoZu4rVQSz75wKswsA1QZ+jcMbAtBBciQd0Dw2prg9Fx1YLRcOxTlrBY"],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}},{"additional_data":{},"alg":"PS512","crv":null,"d":null,"dp":null,"dq":null,"e":"MIICCgKCAgEA2kcas5Zxu7LcuStUGsL-ZVEO10Hl_AZZeSDOSft-bSXXzSoJDv9sc7DgjF9uGWDTfE_car0C6e_bvF1iVs0VEXJUIdbEGNrt818B1taHP87MvMILveIDY1Jn9zEmWG8w8u78b3L5Zre1LO1MObL9h99FTizCL9JdXKRjb8R_SKZ73rwrErrG1mYgc4EDE3Pswg-SnMQTyvxr3wSbY0qzdcXoxttOSQtrOrjEpBFi_F4-l-2fhuTu0E8pTfXCAohWwiWC6mVDPe1XfHGVxglmKGqUWRlCBassG5hQzxav4dsk7pUZ89qfgeyQitzpbff5OuOZRa5wZpR323lq2rkMLo3YTMymm0lOsxUcCtRiYIy5-MdaVddC5msTrcQXHmmE3Z9XMT0fUuLKNmD7vkFvWUt36QkRBhzGRqoGRNlEiNOWa_u-s8ipJj2tSRJEivylkhtaXAYEsBd9U-uiF4d3cOsU-csS-0YNqRInG9Ktek7erILePTZD74UEOJqn0gqel_Jxvt7ev2P99KjjFu-1NEc9gEwaFRzrocZMsjsrrQekRtBpeAq1koUiMQPgxZrN0bl270EbyDmOdLn3zbB_gOG9uyuw-bMm3MhYdcgep45BQfQcANgks3aq0HkfFEnCRa49kRYk_5-VmQkVpUvCE21DuEVa5YjaT3HzZuaZY2UCAwEAAQ","k":null,"key_id":null,"key_ops":["sign"],"kid":null,"kty":"RSA","n":"MIICCgKCAgEA2kcas5Zxu7LcuStUGsL-ZVEO10Hl_AZZeSDOSft-bSXXzSoJDv9sc7DgjF9uGWDTfE_car0C6e_bvF1iVs0VEXJUIdbEGNrt818B1taHP87MvMILveIDY1Jn9zEmWG8w8u78b3L5Zre1LO1MObL9h99FTizCL9JdXKRjb8R_SKZ73rwrErrG1mYgc4EDE3Pswg-SnMQTyvxr3wSbY0qzdcXoxttOSQtrOrjEpBFi_F4-l-2fhuTu0E8pTfXCAohWwiWC6mVDPe1XfHGVxglmKGqUWRlCBassG5hQzxav4dsk7pUZ89qfgeyQitzpbff5OuOZRa5wZpR323lq2rkMLo3YTMymm0lOsxUcCtRiYIy5-MdaVddC5msTrcQXHmmE3Z9XMT0fUuLKNmD7vkFvWUt36QkRBhzGRqoGRNlEiNOWa_u-s8ipJj2tSRJEivylkhtaXAYEsBd9U-uiF4d3cOsU-csS-0YNqRInG9Ktek7erILePTZD74UEOJqn0gqel_Jxvt7ev2P99KjjFu-1NEc9gEwaFRzrocZMsjsrrQekRtBpeAq1koUiMQPgxZrN0bl270EbyDmOdLn3zbB_gOG9uyuw-bMm3MhYdcgep45BQfQcANgks3aq0HkfFEnCRa49kRYk_5-VmQkVpUvCE21DuEVa5YjaT3HzZuaZY2UCAwEAAQ","oth":null,"p":null,"q":null,"qi":null,"use":null,"x":null,"x5c":["MIIFEjCCAvqgAwIBAgIIVJ2FZ2LEtEkwDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIyMTIyMTA5WhcNMzMwNjIyMTIyMTA5WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANpHGrOWcbuy3LkrVBrC/mVRDtdB5fwGWXkgzkn7fm0l180qCQ7/bHOw4Ixfbhlg03xP3Gq9Aunv27xdYlbNFRFyVCHWxBja7fNfAdbWhz/OzLzCC73iA2NSZ/cxJlhvMPLu/G9y+Wa3tSztTDmy/YffRU4swi/SXVykY2/Ef0ime968KxK6xtZmIHOBAxNz7MIPkpzEE8r8a98Em2NKs3XF6MbbTkkLazq4xKQRYvxePpftn4bk7tBPKU31wgKIVsIlguplQz3tV3xxlcYJZihqlFkZQgWrLBuYUM8Wr+HbJO6VGfPan4HskIrc6W33+TrjmUWucGaUd9t5atq5DC6N2EzMpptJTrMVHArUYmCMufjHWlXXQuZrE63EFx5phN2fVzE9H1LiyjZg+75Bb1lLd+kJEQYcxkaqBkTZRIjTlmv7vrPIqSY9rUkSRIr8pZIbWlwGBLAXfVProheHd3DrFPnLEvtGDakSJxvSrXpO3qyC3j02Q++FBDiap9IKnpfycb7e3r9j/fSo4xbvtTRHPYBMGhUc66HGTLI7K60HpEbQaXgKtZKFIjED4MWazdG5du9BG8g5jnS5982wf4DhvbsrsPmzJtzIWHXIHqeOQUH0HADYJLN2qtB5HxRJwkWuPZEWJP+flZkJFaVLwhNtQ7hFWuWI2k9x82bmmWNlAgMBAAEwDQYJKoZIhvcNAQENBQADggIBAIhFr9hNjtk0B2/iXN4PCAPz8ldtVYHB1AgFr5dBvGD3uq+XFVnzrtN+dSI6Wu7FYL52LDW4har36OCFoYSIl4JRCjR5wQ1oNX11m6PIXq5Wv9kdswQ/Mzan5MxttfM3E/dXjK5fJ5nXLeCVaN5jxdSzFnaxRkv3e4qO7QAhf8ZDQb0XqtWp/oXtNMWShcl8Yonjpz1wo0YfHzukzoT+SOVeESEGZ8MsdLjrLRN/Vzt8QSgWhNNhwPDoNIwMJrcda6Eot6ygExnG70rQiy63wzHtthzCAKgorb+ZFIL3pVINlhfN4TbfuM0ZiB4qyidUgkJuqteMPK/toYKx6N6Gs9D8AzEsaSnO3sUQRXlJ8Vx6BRQrWFss6eOqtNBIRbCKcC9FjvbQGpQco914pOqh++FM6a+OzEZMMQ3A3SgXL1yi4UAJq28pIy4ZXVxSOq4EoKns6lpfiWYbYPUhwGmASPm54eOoPOMbeakrfIs9O1y/ZWoXDulCJschpMPk8QvFd6iPDsxrutL954kPCU7ev858a8mWo039RzSUtCcE+tUuG7hFnYf9sKm28+RlWUMa4w814GCIAy+Qao7NNwZCSAZLVTsgnBDd+gBj9nyNA3ckHYzhkK6rmsHh1VPkxME6W6WOl2sVVZRtL2dg+P3KrRDqUKn9maQcQ0Ynvsi2pCO3"],"x5t":null,"x5t_s256":null,"x5u":null,"y":null,"key_size":4208,"has_private_key":false,"crypto_provider_factory":{"crypto_provider_cache":{},"custom_crypto_provider":null,"cache_signature_providers":true,"signature_provider_object_pool_cache_size":40}}],"skip_unresolved_json_web_keys":true}
\ No newline at end of file
{
"alg": "RSA-OAEP-256",
"kty": "RSA",
"use": "sig",
"d": "LPw8P58MYIjQZby6YldrON-2dBPfIXCNYUxBsL4tay2c8FQBVH7lwQW2gEvSsjlM3QCEixfAecgS3WX4id1ZXdDUedUidKLrB7bBIFdpVYUvNGa6MbzE2zjpeACnR_ixE8ZNIPKeHiibGeVAisL6NzL9qxct_-gx0SQish1LQ89-XVYC7DRsHlzB-56iaKXicybJyIE2JFgESiyih6Kj_mD_xQWUE_8q3-2Z90SPvKaHYLBGQDpU1IIZ9g7UZ1bFfKAOgVJpohEf3-mYqFDZZE6EZELXDDcwqRIh9nDOOi0xpv9psEKZOJZXpHX23M3R3VKnn2m3te_oFbqMO5U0JO4M3eK60A22WweFSSKKBbm2pcxml32OS-1T1aCK7SMH_zya_Gggi12gqudF-cpuvULc5x9Mzw41hKCbfbPp0pez7bb9l0UaEThxacw8k9xCrfln7kt1oyfItbxXDY2P5YizyOwYb9j6ZTfJ_Va7qq8qRe5AdWSsr8_2H5Fj1LqKV2faRb5JU30DvfdX4HjTL2mdq7mTA4mSSY2ue0S1AJLaxDHnI_7U0f0QGPMlzMfC12X_0eVNnI3fngs1mFra0Q26ORT1mlV7PgXOzIFg0XfofUtLlwgCXOQPEjvTWTTz5Zf3xFdTJnCOqKQCe1BGc_varc8_UmJtFrE6b0BGZRE",
"p": "24JOJEt1-4eKjUN5qQ_MhaKaoMOS4FKub4jwrKwQoGfDM5YxXz895_gkTnYHrY4VQNYrEgGvBnYVq2K8RsIiiBN7ippyRdiCsg9i3lERoymh4lR5cOADWOgQDvAWwh0SQobpMZkh38SIIkPWSMA6-kOzWcyiaFJkyti43j-Fdnm1mvO5w_Lu46kSkrOe-ksMVqAtK-SIUemhs8tnQkRzfBWUjq5670JgxWFoSqlPRrMlq6oKLfmf-TYJ_PmMpDL_u3_whCdedWCU2n14rMAWLlPrv6QaPXhBGEZpq1X0qx9bpG-Yhb_8kH03j7fI4Qtt7ZOYtINshYM5lQz51cx05Q",
"q": "zg83Qpa0-48U27FceP1LMvIYwDFtKRvnOMzvWAA-fJigOZHOw7XWLlUkRu1KDB0QT5GgXA1MyfYhYZ5NeF05QclnyDbg5_VcmIGPrxZ66HQdAj4jhjvLlvtY6N9iKWw-ZR3XNV_N9HRQzPV-BSEW325CL5OKzE_dqcsqwB75jfNv09q1VfVhi-VJ5T9Y7-OBJN4FGWl8Y3i4Yycsavw8_zc-m9qP0PbRfXmHVG6YwJUKAii0sHsBv6fplG4lQq7wgqh5fuw15VYWM6d7xajwg63bIoeCDvGO2a35TcE0MywucJwldo-YImarK-0IvsiJo236W2d5vcJxuzmV5RquHw",
"dp": "cT4uNgdAHL12Ox5-WzutVZvnjdyXn2bIWv4Yu9wgz7_4MlrfqbWkqFGZ2WiG2YCdck-K9MUtmHW_BCXx38czrWPvrjezkFj8RAQwC2VjZfuKaosOA69tyqYd8rbl5sq8qtmS4GWR1jE70gGRQQL66jWXB1LMzmkDWqqn5PB8V_y-Nexa_74KhCSrUkecUp_5A4-q_iPuN-QB6hGbedJ6iZ9QfrOA9IIYDnwMI8ho_55YZtFYYxOO9jBswrezWNp-mCqO2H6--msTIAzu_qAyUUA2NS3h46hwXKemyB-WE9ofmxt_YjEDiT8wNNKprYAJ_DDS7P2INPDX-g8xrJzICQ",
"dq": "Slc6_I8apFcuk0QdtJjNdIfbXht24onqlZd6EimkYZc-1wY_rmP_7Z9SAzTArjYeGFbVn-A8f_CIgot2L6KScaWUB6uk4Iqo6Wx0xho6JXserBx2_Iq-HK55mSpeY8tlh12IsvzpdPQx4n__AyK4-crxnfCA9s0pj4R42-9Q4WGeSrRxD54Dn1ENo-OC1qkhgoeHF2_zLH_1JfCQGdj-uKTZtajYke86DSa3KELuYSxj-_trlPAL5XVS0_YZA0HSC5F0o9Hcb-zq_Z_DC8CzZQ5oLMDury1--BHIC8FUb9HUv1PWQDv2CxM3VhWiPhJjdc7LsAZY6ZkpJv7TkWBayQ",
"qi": "sgbK3M3xJbbG0i_jo8qIvhKrNQpbFPajTx-d7nn2FbFyHwoz7VPGuqaJIaimL35mTS63kVnl52WgEWIBqZmpP9Iqs6twxJzbPGVdnnudGoalfpJHAQy7L7hhSFTmor05K1lKJPpyRV67o1KYlh5tlwEsO2zglL9h977vPbkBShfstpggpl6KdD81Gpd6--agxM7rewx6LLtr-JkODjHwlqLM7djinoEX_FLgdMZInE0CbsyzaSbEg5K6YqKyz2C6UzdnSq2IFXtfK6oU-jhI4oZ-bngV4WoJ2YbLRDx3G_nD41KBjcTLggGxszhxenrNmLqbEZsxoBbHUrOvzp7hpw",
"key_ops": [
"unwrapKey"
]
}
\ No newline at end of file
{
"alg": "PS512",
"kty": "RSA",
"use": "sig",
"d": "c8LvJ2jIhZRbqX-AjOwPmwqOGpgTG69z-fVfeJO2vYZD9CHd0JlgyO0kIHs3x7MPgjFIuYyEczHESZLHuAIn2Olsy-CXoq--1_CpwH8mQiomQur4FZ1cp-ZGtiUTjgP-qrotv2UqwF84KhCdvNWenQ7pfznErIfz5l5bkUE2vi2mZD7JyBl1mZua4__KKDgghRYFJsy6PTJrqgg1BFeE8UMmisRvGdw-aTfAZcgM8f6e9-VW4_Dw7w2VKjbQm8LSv0uW4p3j2w_-8nBrrN4TwDo55zd0HpvoZO0Uhbc9aRAzaaeO4NWQnnxVtCbe763mB4dUMOGNN85_ghbR9k5RswTPcom2E3B8MWW39NYYsYjdCuaf5w0WzxeFlAhrtMou0vSkLPuygZfZtxeEpVYXUSb3sXs7QeZDn-4BAtkbIqOrlUSRWLFYH_K0Egr_uY0LKogGcGiR0cXKkMAMUD73f8-xqwsRcyIBhJ6KfGf9XLkygYcfbJZU3O6IcpZnxXUVJccrzKSGNXDZQcwu_cIqAtbswQ9ztc9mQweXluEH5FCyLasMBQB_oqMVBYLggs84O5QJ1usEY93YA9uDpp8LAEFyn9R5bkvXGCcYu_nf1ek9YMubCGjNyzRtCnWJxDsiCbak857WOZ9mijE-S6dujDvV_fLof2GidrXxIIhfboE",
"p": "-v0LY1Lg9zOFHLAG51fd1uFi36RAKEdSEPe60Vh4goQUFQBbdcEUMrEB7wxMr5bDX33-Z1UqstduRGJirJpuz1QC5Sa-la_qHLcwZBVUQRCdP6gpy6CS4IB_VWHSa_b7JWXsCvfWCsoMnEetI-nSRq1d0ZkB8moYNzNFFTl_5wVDf3Eead4avUAjdUrFCp0yeAmqCmPCogFGMLh6z4Xp5s5R6aZ6jRST4It1MvHLRnBkgWN44fPpUsaGdhTl0lxQz0I3Bttb6cpnopjPcNNCDq0WVbZzkp9jzf_zCAlVCEvA-8eq8AH0ODkZ6npRkv2fcnFFrI1uX6usfLiHu5LvyQ",
"q": "4fiFQJ2_ddAy_NSiNj79h87Uw2PE2_tgqnkWvQv6z5uWf746X-rUu30DsYprH1IMkNc5UaeEZnyQdb6m0Cd_1gpJYt-4GrADmpdcvtbO-tXd2423S4n5O-5QF63kYPw3aziMxEN7NgPzOE3Bg-1NGrZ8wlLbSRgVyCyUrTYzhADm2N2rX38uSG4TRUcYl4AgKA1qhvJ6ap0JHcnIiz33-VjfGIkJMI1nzP4jkRFOvxUDG9PQVRosV4myhh_y5kYHpyp0lmi2qYXgVyABaGxixDznS7zBmyxBgDRJ41hnCamezTwPamU6uj8Z3m92VQvEVBv2HJ26BeKLoJ02z5zDVQ",
"dp": "RXuODoYgL288149Hqf3iNR2aQK148W2lI3thZZkna4JjCNlbeILmM45bKbFu_WEwXxxDNJoYQwBuz1GpXX03VgA8-PE767aSijaQl_RrqcOOtNO6FlwyrSIFnj6BgVATgOvxZ6vqvnvm99DD9uBBTT2rbl38cv66C3YPFuwfI3aKlBpdwBMztdauukbju6d_FEogn9W0SSMvKke4AAFjmnjdpmBnJu1ebthMrrjPfIWa3VMLYQokOr0o9kGcyhqyaF49W5GYpWVaQWIqc2KYs_Vo7HuhDSNA_wNvZXcn6i8Gku1Yvi7cTEBKk2YfdSDvZkBDeJyCxMuC6dgwA1aPOQ",
"dq": "Nsug5G5cQyFde9nEDAtyR0Bsb4T986odYrlCPk1tYHKGKCvk0-WJ-Hz0LFU4bLvkuCq4h4hrnr6N-T9mDAvIAAs2iHdfmXkdJpuVreFBB6pcxiSzUen_Of0sBtHwE2SVu7ZWzDDg69RBYmHYjzk3_UZLMoQNEMh6X7QPyYDfNR9S2zvFlr6sZnvqyF3ZJMO5CH1YW6jo7nluAH8x1jIMs7ZNQxHX3KItjZQC4-aihct-mXzfhAN4xTFqzQNqT1Sj_nFZHDAAO1NvdzEXpk7CFHwASmlXOV2d9Iy5bhu9wKYVEAeEZXRurUMn7rxwoWbdENhG8eF9fnfVC_mTlPyakQ",
"qi": "HuSAmJvBsXtXqndLXu2hqMb_TTvjYtmrNCH4QhiD-2-ZPjYsy-sTjtb8PUf1JDg2O1l_aihK0Vq6yTTfjGIaql3ONHUk8S0sokPnvL32yuLskMJyHtaJ75UiiAAn44NZwWiLgH-k4M5zHMxMjdUAO6zx9jgYmqirIyNMgQsOS9js8hAOJ4nO5ccbiNKkmEULmEffGvDHMzHvPIe1sFPE1oIRjBZehUg6MtX5gkC4LscVMTVe0JFhstY-T13Vr9hrQCxsLCm4eD_J_BkMcczIasREgQq9THWNV_UzBm7m-CLkFwuWA9BM55ulgMlBfTUC-FHW9L5SxK9XeWnhMOOORw",
"key_ops": [
"sign"
]
}
\ No newline at end of file
{
"alg": "RSA-OAEP-256",
"kty": "RSA",
"use": "enc",
"x5c": [
"MIIFTjCCAzagAwIBAgIJALuWyKBZaYJaMA0GCSqGSIb3DQEBDQUAMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxUZXN0YmVob2VyZGUxIzAhBgNVBAMTGkZJVCBDb25uZWN0IFRlc3R6ZXJ0aWZpa2F0MB4XDTIzMDYyMTA4MTMzM1oXDTMzMDYyMjA4MTMzM1owSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwr+bl4HTW/kPpvYoYovVLrp1YrtPdgYAyeGPcxbO9RvmOLOLTqh5A64a0Zgp2z1no8k7KpPPnNyZY76zIB6jIOADmZzoNJ2yh6xYMV+fld0gKZqYCgA4dXIYqj6dFMWMmAilplMY7sTjGGpwvEABmz690ZiJp9MvD08AmS0JjJyfu4kVRw46CqurdPnlQrH5vhrAt07t5kvUUS+yM3ABiREZryMjyFqC2Bva3STp47msTmhyLUO5Wsp8CUD8uiRxP/LvutUR22jIne5MpO3Y+p/omtkE4doRA+JcZS7Vr2MhfQr/Fw/FSA0GN4O/fLZt2+K5Rs9PukL0aNtUa7qi9+b5hdtmecExNFPKDtkZK3izLukEwF0RybRSILLGshBZ8OofIN0j2O9wwX2WbMKPerVALcNGugUvi8l8uvin7rXzeFy/tzur3S1fRGdpPZ3pueGih3YwnRMJi4L90FNRDYLDV4SXboTKXPfKuMJ9mkzpOh4pkk+EjsGmU3/5s078iVjFK/oXQVWaziW/SB8GgbU19d3RUX819CehAM+ZnonlVVvTF/JeYGdTcVw7Smp9ou/TtKIUrHnc4AcQMXc14dZAUFUhoPy7hz/WszTHuESDBgqnSDSnZXyjsPPU9EDRxQaaz/80TkwajiIpzV78qwLMrr262ykaDzAMvk3fNuwIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFIDAdBgNVHQ4EFgQUIfFUjiXclX6CtnN4L2/8M7Hg25YwDQYJKoZIhvcNAQENBQADggIBAGtyBwPsvoczhazcHZRELWWiVz9V6KbXp9qVctMBbt6DN1p6iWqXcOakHBqrKdgtu8vXLyKOKSjZ+yYPaKjiEZIxuDH4fULb4FeRD9c9BqXjOS5g+HfPKYtgjm6BrHviaDcbdyq+prbHDYpVNXiYvO7o6wdvEraMFTtfqUFFTFWU3Elm7qxTxkSq2drk6lOoCEFMW0a11V/tuThyCMhsHvKns8uoHguFXyt5n5OpeIcw/rsdrezWWsZscujKsGHKjhWVM2LZZGAFXyddTlNNqGCScwtzOxkNB+YyQxYQ+dPLd2056uArB4fqiZnSMkmQ/dzt9/AaY6+YxTYD0r4SqDvjiuwwI8BZOUNkd7fNoM8VKTW5Msn9ZoncawxWEICd2JQlUgNq+ak51/JXj/+WIKzvO9C/wuIKgicIWHvZap0IOdCYftDOwil4ZeUSyZurlyKWdOy0gqhMcqgHHIRb0VImcqCFp7vKQFndHV5UgUi4EDev1pxH3ZAbNYUc1zcJCZwctggYSYP4HVejEA2PEmOwQHQeqSAVKa5C9KhC1rnaLNtt4RU9l2DMV/to5hOlpZIyuk2P74VGN0uJzFrkzPJiU8DvL4mbNYZ3pg1zD/emZmZoCuMHAgfQ1ZcrjJ1EKpPNb12DiG5oTR/TSQTJRexzWxvk1uEFaiThEofyc5+5"
],
"n": "sK_m5eB01v5D6b2KGKL1S66dWK7T3YGAMnhj3MWzvUb5jizi06oeQOuGtGYKds9Z6PJOyqTz5zcmWO-syAeoyDgA5mc6DSdsoesWDFfn5XdICmamAoAOHVyGKo-nRTFjJgIpaZTGO7E4xhqcLxAAZs-vdGYiafTLw9PAJktCYycn7uJFUcOOgqrq3T55UKx-b4awLdO7eZL1FEvsjNwAYkRGa8jI8hagtgb2t0k6eO5rE5oci1DuVrKfAlA_LokcT_y77rVEdtoyJ3uTKTt2Pqf6JrZBOHaEQPiXGUu1a9jIX0K_xcPxUgNBjeDv3y2bdviuUbPT7pC9GjbVGu6ovfm-YXbZnnBMTRTyg7ZGSt4sy7pBMBdEcm0UiCyxrIQWfDqHyDdI9jvcMF9lmzCj3q1QC3DRroFL4vJfLr4p-6183hcv7c7q90tX0RnaT2d6bnhood2MJ0TCYuC_dBTUQ2Cw1eEl26Eylz3yrjCfZpM6ToeKZJPhI7BplN_-bNO_IlYxSv6F0FVms4lv0gfBoG1NfXd0VF_NfQnoQDPmZ6J5VVb0xfyXmBnU3FcO0pqfaLv07SiFKx53OAHEDF3NeHWQFBVIaD8u4c_1rM0x7hEgwYKp0g0p2V8o7Dz1PRA0cUGms__NE5MGo4iKc1e_KsCzK69utspGg8wDL5N3zbs",
"e": "AQAB",
"key_ops": [
"wrapKey"
]
}
\ No newline at end of file
{
"alg": "PS512",
"kty": "RSA",
"use": "enc",
"x5c": [
"MIIFTTCCAzWgAwIBAgIIFrVoR0UfdW0wDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIxMDgxMzM0WhcNMzMwNjIyMDgxMzM0WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN2MDsok5lxgiUx8WikuWoorEabBdJ6+mXkWaHdG9G/QpQXf5hAFodKXd4E0x+TPOOKNKgjzRrfzQebBPj/Ebpq6VrLcSsg551uHkCvYODpBEnzxsuoP3ZdNK1zRRjSgQWsW0c/CHeJ4dBfeU+OOsXb3OkRh/dWSf43Jh/ddJeHzS6OUGFUwKBfP1HVMv1Hcma5LQLdhKatZckr3SoXCpgcOzPCfRxEZgmNiTatwAd6JBeE7aIVOeN46dkuBSr85ypvm7XoCnruFWkumZXh+E2yfZjCDTKCFD6VBWVdf+3T+JkouiHr+mvzlr828vcEAIeQNAXeBb6NjXNp1jJzQTgEiYfVsHZRdORSLVt5ExhIxnSMuQD/2hN/+MHbBb1gfhlymUitCXYOEUVwGw/e7RJvlCS11M83CzNHa0fMqY7SvV7nv3FbzuPWpV54VoPcpoom5C8dtH8y6iGV4GoLiLeNYgIeOpRIu/MHm0WFHDrASDS9syQ4MH3599t6QuaZqp6IjkhGWEnPdwA5H3hpnpwD/PRZGE5+5ApAe1UM1rRs0QlTIIGJQIe6KdWqnh5Wy1P9nblRnu2T0eNf55nTszBXAk1/c+AUZQn7se0S2aP+HImcyHqRbcariUNEjZFHNKyVraHVV13kHdnMtexYlS2nGJlISADRIvigHn8XZ67i9AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgUgMB0GA1UdDgQWBBSrTYoIfBr/sOF2AxwlbZYWyOSAijANBgkqhkiG9w0BAQ0FAAOCAgEAivivjBuxs7D7N/h2Tg3KWIJetlBLkO5UE/Ajy9KedKV/MqzYC6mBNqiLyP6/NWFUdJbdEsR7rFmfvI5ad7i7HheRm3CRu/daehbcSlrKDtMafZrU6AHTOTPyTFEc6Wya3QaoL6Ba0enYPejErgjBoQ1fJ1EXAsx6Zws8QKAxcTWmhLpMPUKXSAODMSQ4LDf5q7gO53J+cyhw/+q1OB6J+FmXA9NrZRs0jLIs+aHKtn7MB28rZAH8aLFD3mBgz3C5t4YqjePwrgo2bIujfcFqIYR0M6gFzAmrjhqJ9MyjTUabzsnPVn/8vhsMw3tqLzw7EkGopcWRrGGu6o8u9I4I9Q8anvvKaySOMNtprHINcK7aQwzytf4By7+UBmbUbkPCilm9xtvFNqov3TTyQHzxVCIVHwIUG1cyZfBQ44DRjrMN9rzw2FKsr0XIrCl1sL/DYP2ycBcmrZ3r7px2VJeX6dBmqF7rZVu8a9D0PRlJJ3+Zm/IZ+acdxj07DLQKPrjNgsCQILIiDSQknywnrvZno8GFPvTbkLcNpCRjBFOU3Pwz3n2881vCpkRhFxL/w86Etfd2cDh+I8sPvpEgzdIGivhasM5p7UJpDa8K4K/5wajhvkIi4u5kKo0Nc0Sv8lndKvWrcO9HjyjBUs6mJ83dX6JFW3dhFj8UT/ztmof+uKo="
],
"n": "3YwOyiTmXGCJTHxaKS5aiisRpsF0nr6ZeRZod0b0b9ClBd_mEAWh0pd3gTTH5M844o0qCPNGt_NB5sE-P8RumrpWstxKyDnnW4eQK9g4OkESfPGy6g_dl00rXNFGNKBBaxbRz8Id4nh0F95T446xdvc6RGH91ZJ_jcmH910l4fNLo5QYVTAoF8_UdUy_UdyZrktAt2Epq1lySvdKhcKmBw7M8J9HERmCY2JNq3AB3okF4TtohU543jp2S4FKvznKm-btegKeu4VaS6ZleH4TbJ9mMINMoIUPpUFZV1_7dP4mSi6Iev6a_OWvzby9wQAh5A0Bd4Fvo2Nc2nWMnNBOASJh9WwdlF05FItW3kTGEjGdIy5AP_aE3_4wdsFvWB-GXKZSK0Jdg4RRXAbD97tEm-UJLXUzzcLM0drR8ypjtK9Xue_cVvO49alXnhWg9ymiibkLx20fzLqIZXgaguIt41iAh46lEi78webRYUcOsBINL2zJDgwffn323pC5pmqnoiOSEZYSc93ADkfeGmenAP89FkYTn7kCkB7VQzWtGzRCVMggYlAh7op1aqeHlbLU_2duVGe7ZPR41_nmdOzMFcCTX9z4BRlCfux7RLZo_4ciZzIepFtxquJQ0SNkUc0rJWtodVXXeQd2cy17FiVLacYmUhIANEi-KAefxdnruL0",
"e": "AQAB",
"key_ops": [
"verify"
]
}
\ No newline at end of file
{
"keys": [
{
"alg": "RSA-OAEP-256",
"kty": "RSA",
"use": "enc",
"x5c": [
"MIIFTjCCAzagAwIBAgIJALuWyKBZaYJaMA0GCSqGSIb3DQEBDQUAMEkxCzAJBgNVBAYTAkRFMRUwEwYDVQQKEwxUZXN0YmVob2VyZGUxIzAhBgNVBAMTGkZJVCBDb25uZWN0IFRlc3R6ZXJ0aWZpa2F0MB4XDTIzMDYyMTA4MTMzM1oXDTMzMDYyMjA4MTMzM1owSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwr+bl4HTW/kPpvYoYovVLrp1YrtPdgYAyeGPcxbO9RvmOLOLTqh5A64a0Zgp2z1no8k7KpPPnNyZY76zIB6jIOADmZzoNJ2yh6xYMV+fld0gKZqYCgA4dXIYqj6dFMWMmAilplMY7sTjGGpwvEABmz690ZiJp9MvD08AmS0JjJyfu4kVRw46CqurdPnlQrH5vhrAt07t5kvUUS+yM3ABiREZryMjyFqC2Bva3STp47msTmhyLUO5Wsp8CUD8uiRxP/LvutUR22jIne5MpO3Y+p/omtkE4doRA+JcZS7Vr2MhfQr/Fw/FSA0GN4O/fLZt2+K5Rs9PukL0aNtUa7qi9+b5hdtmecExNFPKDtkZK3izLukEwF0RybRSILLGshBZ8OofIN0j2O9wwX2WbMKPerVALcNGugUvi8l8uvin7rXzeFy/tzur3S1fRGdpPZ3pueGih3YwnRMJi4L90FNRDYLDV4SXboTKXPfKuMJ9mkzpOh4pkk+EjsGmU3/5s078iVjFK/oXQVWaziW/SB8GgbU19d3RUX819CehAM+ZnonlVVvTF/JeYGdTcVw7Smp9ou/TtKIUrHnc4AcQMXc14dZAUFUhoPy7hz/WszTHuESDBgqnSDSnZXyjsPPU9EDRxQaaz/80TkwajiIpzV78qwLMrr262ykaDzAMvk3fNuwIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFIDAdBgNVHQ4EFgQUIfFUjiXclX6CtnN4L2/8M7Hg25YwDQYJKoZIhvcNAQENBQADggIBAGtyBwPsvoczhazcHZRELWWiVz9V6KbXp9qVctMBbt6DN1p6iWqXcOakHBqrKdgtu8vXLyKOKSjZ+yYPaKjiEZIxuDH4fULb4FeRD9c9BqXjOS5g+HfPKYtgjm6BrHviaDcbdyq+prbHDYpVNXiYvO7o6wdvEraMFTtfqUFFTFWU3Elm7qxTxkSq2drk6lOoCEFMW0a11V/tuThyCMhsHvKns8uoHguFXyt5n5OpeIcw/rsdrezWWsZscujKsGHKjhWVM2LZZGAFXyddTlNNqGCScwtzOxkNB+YyQxYQ+dPLd2056uArB4fqiZnSMkmQ/dzt9/AaY6+YxTYD0r4SqDvjiuwwI8BZOUNkd7fNoM8VKTW5Msn9ZoncawxWEICd2JQlUgNq+ak51/JXj/+WIKzvO9C/wuIKgicIWHvZap0IOdCYftDOwil4ZeUSyZurlyKWdOy0gqhMcqgHHIRb0VImcqCFp7vKQFndHV5UgUi4EDev1pxH3ZAbNYUc1zcJCZwctggYSYP4HVejEA2PEmOwQHQeqSAVKa5C9KhC1rnaLNtt4RU9l2DMV/to5hOlpZIyuk2P74VGN0uJzFrkzPJiU8DvL4mbNYZ3pg1zD/emZmZoCuMHAgfQ1ZcrjJ1EKpPNb12DiG5oTR/TSQTJRexzWxvk1uEFaiThEofyc5+5"
],
"n": "sK_m5eB01v5D6b2KGKL1S66dWK7T3YGAMnhj3MWzvUb5jizi06oeQOuGtGYKds9Z6PJOyqTz5zcmWO-syAeoyDgA5mc6DSdsoesWDFfn5XdICmamAoAOHVyGKo-nRTFjJgIpaZTGO7E4xhqcLxAAZs-vdGYiafTLw9PAJktCYycn7uJFUcOOgqrq3T55UKx-b4awLdO7eZL1FEvsjNwAYkRGa8jI8hagtgb2t0k6eO5rE5oci1DuVrKfAlA_LokcT_y77rVEdtoyJ3uTKTt2Pqf6JrZBOHaEQPiXGUu1a9jIX0K_xcPxUgNBjeDv3y2bdviuUbPT7pC9GjbVGu6ovfm-YXbZnnBMTRTyg7ZGSt4sy7pBMBdEcm0UiCyxrIQWfDqHyDdI9jvcMF9lmzCj3q1QC3DRroFL4vJfLr4p-6183hcv7c7q90tX0RnaT2d6bnhood2MJ0TCYuC_dBTUQ2Cw1eEl26Eylz3yrjCfZpM6ToeKZJPhI7BplN_-bNO_IlYxSv6F0FVms4lv0gfBoG1NfXd0VF_NfQnoQDPmZ6J5VVb0xfyXmBnU3FcO0pqfaLv07SiFKx53OAHEDF3NeHWQFBVIaD8u4c_1rM0x7hEgwYKp0g0p2V8o7Dz1PRA0cUGms__NE5MGo4iKc1e_KsCzK69utspGg8wDL5N3zbs",
"e": "AQAB",
"key_ops": [
"wrapKey"
]
},
{
"alg": "PS512",
"kty": "RSA",
"use": "enc",
"x5c": [
"MIIFTTCCAzWgAwIBAgIIFrVoR0UfdW0wDQYJKoZIhvcNAQENBQAwSTELMAkGA1UEBhMCREUxFTATBgNVBAoTDFRlc3RiZWhvZXJkZTEjMCEGA1UEAxMaRklUIENvbm5lY3QgVGVzdHplcnRpZmlrYXQwHhcNMjMwNjIxMDgxMzM0WhcNMzMwNjIyMDgxMzM0WjBJMQswCQYDVQQGEwJERTEVMBMGA1UEChMMVGVzdGJlaG9lcmRlMSMwIQYDVQQDExpGSVQgQ29ubmVjdCBUZXN0emVydGlmaWthdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN2MDsok5lxgiUx8WikuWoorEabBdJ6+mXkWaHdG9G/QpQXf5hAFodKXd4E0x+TPOOKNKgjzRrfzQebBPj/Ebpq6VrLcSsg551uHkCvYODpBEnzxsuoP3ZdNK1zRRjSgQWsW0c/CHeJ4dBfeU+OOsXb3OkRh/dWSf43Jh/ddJeHzS6OUGFUwKBfP1HVMv1Hcma5LQLdhKatZckr3SoXCpgcOzPCfRxEZgmNiTatwAd6JBeE7aIVOeN46dkuBSr85ypvm7XoCnruFWkumZXh+E2yfZjCDTKCFD6VBWVdf+3T+JkouiHr+mvzlr828vcEAIeQNAXeBb6NjXNp1jJzQTgEiYfVsHZRdORSLVt5ExhIxnSMuQD/2hN/+MHbBb1gfhlymUitCXYOEUVwGw/e7RJvlCS11M83CzNHa0fMqY7SvV7nv3FbzuPWpV54VoPcpoom5C8dtH8y6iGV4GoLiLeNYgIeOpRIu/MHm0WFHDrASDS9syQ4MH3599t6QuaZqp6IjkhGWEnPdwA5H3hpnpwD/PRZGE5+5ApAe1UM1rRs0QlTIIGJQIe6KdWqnh5Wy1P9nblRnu2T0eNf55nTszBXAk1/c+AUZQn7se0S2aP+HImcyHqRbcariUNEjZFHNKyVraHVV13kHdnMtexYlS2nGJlISADRIvigHn8XZ67i9AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgUgMB0GA1UdDgQWBBSrTYoIfBr/sOF2AxwlbZYWyOSAijANBgkqhkiG9w0BAQ0FAAOCAgEAivivjBuxs7D7N/h2Tg3KWIJetlBLkO5UE/Ajy9KedKV/MqzYC6mBNqiLyP6/NWFUdJbdEsR7rFmfvI5ad7i7HheRm3CRu/daehbcSlrKDtMafZrU6AHTOTPyTFEc6Wya3QaoL6Ba0enYPejErgjBoQ1fJ1EXAsx6Zws8QKAxcTWmhLpMPUKXSAODMSQ4LDf5q7gO53J+cyhw/+q1OB6J+FmXA9NrZRs0jLIs+aHKtn7MB28rZAH8aLFD3mBgz3C5t4YqjePwrgo2bIujfcFqIYR0M6gFzAmrjhqJ9MyjTUabzsnPVn/8vhsMw3tqLzw7EkGopcWRrGGu6o8u9I4I9Q8anvvKaySOMNtprHINcK7aQwzytf4By7+UBmbUbkPCilm9xtvFNqov3TTyQHzxVCIVHwIUG1cyZfBQ44DRjrMN9rzw2FKsr0XIrCl1sL/DYP2ycBcmrZ3r7px2VJeX6dBmqF7rZVu8a9D0PRlJJ3+Zm/IZ+acdxj07DLQKPrjNgsCQILIiDSQknywnrvZno8GFPvTbkLcNpCRjBFOU3Pwz3n2881vCpkRhFxL/w86Etfd2cDh+I8sPvpEgzdIGivhasM5p7UJpDa8K4K/5wajhvkIi4u5kKo0Nc0Sv8lndKvWrcO9HjyjBUs6mJ83dX6JFW3dhFj8UT/ztmof+uKo="
],
"n": "3YwOyiTmXGCJTHxaKS5aiisRpsF0nr6ZeRZod0b0b9ClBd_mEAWh0pd3gTTH5M844o0qCPNGt_NB5sE-P8RumrpWstxKyDnnW4eQK9g4OkESfPGy6g_dl00rXNFGNKBBaxbRz8Id4nh0F95T446xdvc6RGH91ZJ_jcmH910l4fNLo5QYVTAoF8_UdUy_UdyZrktAt2Epq1lySvdKhcKmBw7M8J9HERmCY2JNq3AB3okF4TtohU543jp2S4FKvznKm-btegKeu4VaS6ZleH4TbJ9mMINMoIUPpUFZV1_7dP4mSi6Iev6a_OWvzby9wQAh5A0Bd4Fvo2Nc2nWMnNBOASJh9WwdlF05FItW3kTGEjGdIy5AP_aE3_4wdsFvWB-GXKZSK0Jdg4RRXAbD97tEm-UJLXUzzcLM0drR8ypjtK9Xue_cVvO49alXnhWg9ymiibkLx20fzLqIZXgaguIt41iAh46lEi78webRYUcOsBINL2zJDgwffn323pC5pmqnoiOSEZYSc93ADkfeGmenAP89FkYTn7kCkB7VQzWtGzRCVMggYlAh7op1aqeHlbLU_2duVGe7ZPR41_nmdOzMFcCTX9z4BRlCfux7RLZo_4ciZzIepFtxquJQ0SNkUc0rJWtodVXXeQd2cy17FiVLacYmUhIANEi-KAefxdnruL0",
"e": "AQAB",
"key_ops": [
"verify"
]
}
]
}
\ No newline at end of file
......@@ -54,6 +54,41 @@
<None Update="Certificates\RevokedCertificate.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\SelfGenerated\privateKey_decryption.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\SelfGenerated\privateKey_signing.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\SelfGenerated\publicKey_encryption.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\SelfGenerated\publicKey_signature_verification.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\SelfGenerated\set-public-keys.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\Generator2\privateKey_decryption.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\Generator2\privateKey_signing.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\Generator2\publicKey_encryption.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\Generator2\publicKey_signature_verification.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Certificates\Generator2\set-public-keys.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Certificates\Generator2\" />
<Folder Include="Certificates\SelfGenerated\" />
</ItemGroup>
</Project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment