出于安全原因,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
以下是在Asp.Net Core存储库中对EphemeralKeyRing
类进行GitHub搜索的结果:
搜索EphemeralKeyRing
时,这是一组非常稀疏的谷歌搜索结果。注意第一个条目是我上面提到的GitHub上的代码文件,它使用了对象,其他结果与这个asp.net核心类无关。
所以我的问题是:出于安全原因,是否故意从GitHub中省略了EphemeralKeyRing
类的源代码?或者它在那里,我只是在寻找错误?
答案 0 :(得分:1)
我看到你找到并点击它了。如果您转到页面底部,您将看到您要查找的课程,我会粘贴代码以防万一:
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;
}
}