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

时间:2017-02-10 16:14:35

标签: security github asp.net-core asp.net-core-1.0

出于安全原因,GitHub中是否遗漏了note: 'abs' is a builtin with type 'int (int)'

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

以下是发布EphemeralKeyRing对象的新闻类:https://github.com/aspnet/DataProtection/blob/rel/1.1.0/src/Microsoft.AspNetCore.DataProtection/EphemeralDataProtectionProvider.cs

enter image description here

以下是在Asp.Net Core存储库中对EphemeralKeyRing类进行GitHub搜索的结果:

enter image description here

搜索EphemeralKeyRing时,这是一组非常稀疏的谷歌搜索结果。注意第一个条目是我上面提到的GitHub上的代码文件,它使用了对象,其他结果与这个asp.net核心类无关。

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

我看到你找到并点击它了。如果您转到页面底部,您将看到您要查找的课程,我会粘贴代码以防万一:

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;
            }
}