2017-02-10 15 views
0

Был ли EphemeralKeyRing удален от GitHub по причинам безопасности?Где исходный код Asp.Net Core для класса EphemeralKeyRing?

Этот мозговой тизер. В последнее время я потратил немало времени на чтение и поглощение иерархии классов, относящихся к основному хранилищу сеансов asp.net и защите данных ядра asp.net. В этих поездках я столкнулся с ссылкой на класс EphemeralKeyRing. Однако код для этого класса, похоже, не находится в репозитории исходного кода Asp.Net Core на GitHub. Столь же странно, когда вы выполняете поиск по этому имени класса, я не могу найти ссылки в любом месте в Интернете, которые относятся к этому классу ядра asp.net, отличному от того, который использует его файл исходного кода GitHub.

Вот класс, новости вверх EphemeralKeyRing объект: https://github.com/aspnet/DataProtection/blob/rel/1.1.0/src/Microsoft.AspNetCore.DataProtection/EphemeralDataProtectionProvider.cs

enter image description here

Вот результаты поиска GitHub для EphemeralKeyRing класса в хранилище Asp.Net Core:

enter image description here:

И вот удивительно редкий набор результатов Google при поиске EphemeralKeyRing. Обратите внимание, что первая запись - это файл кода в GitHub, о котором я упоминал выше, который использует этот объект, а другие результаты не связаны с этим основным классом asp.net.

enter image description here

Так что мой вопрос заключается в следующем: Был ли исходный код для EphemeralKeyRing класса опущенного из GitHub нарочно по соображениям безопасности? Или это там, и я просто искал неправильно?

ответ

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

Спасибо! Это безумие, я пропустил это. Я думаю, это потому, что, когда я искал репозиторий, он показывал файл, но только показывал две ссылки в файле, когда на самом деле было третье, а третье - объявление класса. –

+0

Не беспокойтесь, я был там :) –