internal SecretKeyInfo( string name, Func <SecretKeyInfo, string> descriptionBuilder, SecretKeyInfo subKey, IReadOnlyDictionary <string, SecretKeyInfo> keyInfos, string sourceProviderName) : this(name, descriptionBuilder, sourceProviderName) { SubKey = subKey ?? throw new ArgumentNullException(nameof(subKey)); if (subKey.SuperKey != null) { throw new ArgumentException($"SubKey '{subKey.Name}' is already bound to SuperKey '{subKey.SuperKey.Name}'."); } if (!keyInfos.TryGetValue(subKey.Name, out var exists) || exists != subKey) { throw new ArgumentException($"SubKey '{subKey.Name}' is not found in store."); } subKey.SuperKey = this; }
/// <summary> /// Initializes a new <see cref="SecretKeyInfoDeclaredArgs"/>. /// </summary> /// <param name="declared">The declared secret key.</param> /// <param name="redeclaration">True when the secret has already been declared.</param> public SecretKeyInfoDeclaredArgs(SecretKeyInfo declared, bool redeclaration) { Declared = declared; Redeclaration = redeclaration; }