Asp.Net EphemeralKeyRing Class 的核心源代码在哪里?

Where is Asp.Net Core source code for EphemeralKeyRing Class?

是否出于安全原因从 GitHub 中省略了 EphemeralKeyRing

这是一个脑筋急转弯。我最近花了很多时间阅读和吸收与 asp.net 核心会话存储和 asp.net 核心数据保护相关的 classes 的层次结构。在那些旅程中,我遇到了对 EphemeralKeyRing class 的引用。但是,此 class 的代码似乎不在 GitHub 上的 Asp.Net 核心源代码存储库中。同样奇怪的是,当对这个 class 名称进行 google 搜索时,我在互联网上 anywhere 找不到任何关于这个 asp.net 核心的参考资料class 而不是使用它的 GitHub 源代码文件。

这是 class 新闻 EphemeralKeyRing 对象:https://github.com/aspnet/DataProtection/blob/rel/1.1.0/src/Microsoft.AspNetCore.DataProtection/EphemeralDataProtectionProvider.cs

这是 GitHub 在 Asp.Net 核心存储库中搜索 EphemeralKeyRing class 的结果:

:

这里是搜索 EphemeralKeyRing 时一组稀疏得惊人的 google 结果。请注意,第一个条目是我上面提到的 GitHub 上使用该对象的代码文件,其他结果与此 asp.net 核心 class.

无关

所以我的问题是:EphemeralKeyRing class 的源代码是否出于安全原因故意从 GitHub 中省略?或者它在那里,我只是搜索错误?

这是 link: https://github.com/aspnet/DataProtection/blob/master/src/Microsoft.AspNetCore.DataProtection/EphemeralDataProtectionProvider.cs

我看到你已经找到并点击了它。如果你转到页面底部,你会看到你正在寻找的 class,我会粘贴代码以防万一:

private sealed class EphemeralKeyRing<T> : IKeyRing, IKeyRingProvider
            where T : IInternalAuthenticatedEncryptionSettings, new()
        {
            // Currently hardcoded to a 512-bit KDK.
            private const int NUM_BYTES_IN_KDK = 512 / 8;

            public IAuthenticatedEncryptor DefaultAuthenticatedEncryptor { get; } = new T().ToConfiguration(services: null).CreateNewDescriptor().CreateEncryptorInstance();

            public Guid DefaultKeyId { get; } = default(Guid);

            public IAuthenticatedEncryptor GetAuthenticatedEncryptorByKeyId(Guid keyId, out bool isRevoked)
            {
                isRevoked = false;
                return (keyId == default(Guid)) ? DefaultAuthenticatedEncryptor : null;
            }

            public IKeyRing GetCurrentKeyRing()
            {
                return this;
            }
}