diff --git a/Keyczar/Keyczar/KeySet/IKeySet.cs b/Keyczar/Keyczar/KeySet/IKeySet.cs index 3fe546bb..ef95cf27 100644 --- a/Keyczar/Keyczar/KeySet/IKeySet.cs +++ b/Keyczar/Keyczar/KeySet/IKeySet.cs @@ -41,6 +41,19 @@ public static Key GetKey(this IKeySet keySet, int version) return key; } + private static Key GetPrimaryKey(this IKeySet keySet) + { + var version = keySet.Metadata.GetPrimaryKeyVersion(); + return version == null + ? null + : keySet.GetKey(version.VersionNumber); + } + + public static KeyVersion GetPrimaryKeyVersion(this KeyMetadata metadata) + { + return metadata.Versions.SingleOrDefault(it => it.Status == KeyStatus.Primary); + } + public static KeyczarConfig GetConfig(this IKeySet keySet) { return keySet.Config ?? KeyczarDefaults.DefaultConfig; diff --git a/Keyczar/Keyczar/KeyczarBase.cs b/Keyczar/Keyczar/KeyczarBase.cs index bcecc827..3d2100b3 100644 --- a/Keyczar/Keyczar/KeyczarBase.cs +++ b/Keyczar/Keyczar/KeyczarBase.cs @@ -100,7 +100,7 @@ protected KeyczarBase(IKeySet keySet) }) .ToList(); - _primaryVersion = metadata.Versions.SingleOrDefault(it => it.Status == KeyStatus.Primary); + _primaryVersion = metadata.GetPrimaryKeyVersion(); _versions = versions.ToDictionary(k => k.Item2.VersionNumber, v => v.Item3);