示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CosmosDataEncryptionKeyProvider"/> class.
 /// </summary>
 /// <param name="encryptionKeyWrapProvider">A provider that will be used to wrap (encrypt) and unwrap (decrypt) data encryption keys for envelope based encryption</param>
 /// <param name="dekPropertiesTimeToLive">Time to live for DEK properties before having to refresh.</param>
 public CosmosDataEncryptionKeyProvider(
     EncryptionKeyWrapProvider encryptionKeyWrapProvider,
     TimeSpan?dekPropertiesTimeToLive = null)
 {
     this.EncryptionKeyWrapProvider      = encryptionKeyWrapProvider ?? throw new ArgumentNullException(nameof(encryptionKeyWrapProvider));
     this.dataEncryptionKeyContainerCore = new DataEncryptionKeyContainerCore(this);
     this.DekCache = new DekCache(dekPropertiesTimeToLive);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CosmosDataEncryptionKeyProvider"/> class.
 /// </summary>
 /// <param name="encryptionKeyStoreProvider"> MDE EncryptionKeyStoreProvider for Wrapping/UnWrapping services. </param>
 /// <param name="dekPropertiesTimeToLive">Time to live for DEK properties before having to refresh.</param>
 public CosmosDataEncryptionKeyProvider(
     EncryptionKeyStoreProvider encryptionKeyStoreProvider,
     TimeSpan?dekPropertiesTimeToLive = null)
 {
     this.EncryptionKeyStoreProvider     = encryptionKeyStoreProvider ?? throw new ArgumentNullException(nameof(encryptionKeyStoreProvider));
     this.MdeKeyWrapProvider             = new MdeKeyWrapProvider(encryptionKeyStoreProvider);
     this.dataEncryptionKeyContainerCore = new DataEncryptionKeyContainerCore(this);
     this.DekCache            = new DekCache(dekPropertiesTimeToLive);
     this.PdekCacheTimeToLive = this.EncryptionKeyStoreProvider.DataEncryptionKeyCacheTimeToLive;
     if (this.PdekCacheTimeToLive.HasValue)
     {
         // set the TTL for Protected Data Encryption.
         ProtectedDataEncryptionKey.TimeToLive = this.PdekCacheTimeToLive.Value;
     }
     else
     {
         // If null is passed to DataEncryptionKeyCacheTimeToLive it results in forever caching hence setting
         // arbitrarily large caching period. ProtectedDataEncryptionKey does not seem to handle TimeSpan.MaxValue.
         ProtectedDataEncryptionKey.TimeToLive = TimeSpan.FromDays(36500);
     }
 }
示例#3
0
 public DataEncryptionKeyContainerInlineCore(DataEncryptionKeyContainerCore dataEncryptionKeyContainerCore)
 {
     this.dataEncryptionKeyContainerCore = dataEncryptionKeyContainerCore ?? throw new ArgumentNullException(nameof(dataEncryptionKeyContainerCore));
 }