Exemplo n.º 1
0
        public void Initialize(ExtensionConfigContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            if (_keyVaultClient == null)
            {
                throw new ArgumentNullException("_keyVaultClient");
            }

            context.AddAllSecretsConverters(_logger);
            context.AddAllKeysConverters(_logger);
            context.AddAllCommonConverters(_logger);

            var keyVaultSecretAttributeRule    = context.AddBindingRule <KeyVaultSecretAttribute>();
            var keyVaultKeyAttributeRule       = context.AddBindingRule <KeyVaultKeyAttribute>();
            var keyVaultEncryptAttributeRule   = context.AddBindingRule <KeyVaultEncryptAttribute>();
            var keyVaultDecryptAttributeRule   = context.AddBindingRule <KeyVaultDecryptAttribute>();
            var keyVaultWrapKeyAttributeRule   = context.AddBindingRule <KeyVaultWrapKeyAttribute>();
            var keyVaultUnwrapKeyAttributeRule = context.AddBindingRule <KeyVaultUnwrapKeyAttribute>();
            var keyVaultAttributeRule          = context.AddBindingRule <KeyVaultAttribute>();

            keyVaultSecretAttributeRule.BindToInput <SecretBundle>(new KeyVaultSecretInputAsyncConverter(_logger, _keyVaultClient));
            keyVaultKeyAttributeRule.BindToInput <KeyBundle>(new KeyVaultKeyInputAsyncConverter(_logger, _keyVaultClient));
            keyVaultEncryptAttributeRule.BindToInput <byte[]>(new KeyVaultEncryptInputAsyncConverter(_nameResolver, _logger, _keyVaultClient));
            keyVaultDecryptAttributeRule.BindToInput <byte[]>(new KeyVaultDecryptInputAsyncConverter(_nameResolver, _logger, _keyVaultClient));
            keyVaultWrapKeyAttributeRule.BindToInput <byte[]>(new KeyVaultWrapKeyInputAsyncConverter(_nameResolver, _logger, _keyVaultClient));
            keyVaultUnwrapKeyAttributeRule.BindToInput <byte[]>(new KeyVaultUnwrapKeyInputAsyncConverter(_nameResolver, _logger, _keyVaultClient));
            keyVaultSecretAttributeRule.BindToCollector <CreateSecretData>(config => new SecretDataAsyncCollector(config, _logger, _keyVaultClient));
            keyVaultKeyAttributeRule.BindToCollector <CreateKeyData>(config => new KeyDataAsyncCollector(config, _logger, _keyVaultClient));
            keyVaultAttributeRule.BindToInput <IKeyVaultUtil>(new KeyVaultInputAsyncConverter(_logger, _keyVaultClient));
        }