/// <exception cref="System.IO.IOException"/> public KeyManager(string blockpoolID, NamenodeProtocol namenode, bool encryptDataTransfer , Configuration conf) { this.namenode = namenode; this.encryptDataTransfer = encryptDataTransfer; ExportedBlockKeys keys = namenode.GetBlockKeys(); this.isBlockTokenEnabled = keys.IsBlockTokenEnabled(); if (isBlockTokenEnabled) { long updateInterval = keys.GetKeyUpdateInterval(); long tokenLifetime = keys.GetTokenLifetime(); Log.Info("Block token params received from NN: update interval=" + StringUtils.FormatTime (updateInterval) + ", token lifetime=" + StringUtils.FormatTime(tokenLifetime)); string encryptionAlgorithm = conf.Get(DFSConfigKeys.DfsDataEncryptionAlgorithmKey ); this.blockTokenSecretManager = new BlockTokenSecretManager(updateInterval, tokenLifetime , blockpoolID, encryptionAlgorithm); this.blockTokenSecretManager.AddKeys(keys); // sync block keys with NN more frequently than NN updates its block keys this.blockKeyUpdater = new KeyManager.BlockKeyUpdater(this, updateInterval / 4); this.shouldRun = true; } else { this.blockTokenSecretManager = null; this.blockKeyUpdater = null; } }
internal virtual void Compare(ExportedBlockKeys expKeys, ExportedBlockKeys expKeys1 ) { BlockKey[] allKeys = expKeys.GetAllKeys(); BlockKey[] allKeys1 = expKeys1.GetAllKeys(); NUnit.Framework.Assert.AreEqual(allKeys.Length, allKeys1.Length); for (int i = 0; i < allKeys.Length; i++) { Compare(allKeys[i], allKeys1[i]); } Compare(expKeys.GetCurrentKey(), expKeys1.GetCurrentKey()); NUnit.Framework.Assert.AreEqual(expKeys.GetKeyUpdateInterval(), expKeys1.GetKeyUpdateInterval ()); NUnit.Framework.Assert.AreEqual(expKeys.GetTokenLifetime(), expKeys1.GetTokenLifetime ()); }