SignedObject Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения.
[Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)]
public sealed class SignedObject : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable
[<Android.Runtime.Register("java/security/SignedObject", DoNotGenerateAcw=true)>]
type SignedObject = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Наследование
- Атрибуты
- Реализации
Комментарии
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения.
В частности, ПодписанныйObject содержит другой объект Serializable, подписанный объект (to-be-)и его подпись.
Подписанный объект представляет собой "глубокую копию" (в сериализованной форме) исходного объекта. После создания копии дальнейшие манипуляции с исходным объектом не оказывают побочных эффектов на копию.
Базовый алгоритм подписи определяется объектом Signature, переданным конструктору и методу verify
. Обычное использование для подписывания — это следующее:
{@code
Signature signingEngine = Signature.getInstance(algorithm,
provider);
SignedObject so = new SignedObject(myobject, signingKey,
signingEngine);
}
Обычное использование для проверки является следующим (получив SignedObject so
):
{@code
Signature verificationEngine =
Signature.getInstance(algorithm, provider);
if (so.verify(publickey, verificationEngine))
try {
Object myobj = so.getObject();
} catch (java.lang.ClassNotFoundException e) {};
}
Стоит отметить несколько пунктов. Во-первых, не нужно инициализировать обработчик подписи или проверки, так как он будет повторно инициализирован внутри конструктора и verify
метода. Во-вторых, для успешной проверки указанный открытый ключ должен быть открытым ключом, соответствующим закрытому ключу, используемому для создания SignedObject.
Более важно, по соображениям гибкости конструктор и verify
метод позволяют настраивать обработчики подписей, которые могут реализовать алгоритмы подписи, которые не установлены официально в рамках поставщика криптографии. Однако важно, чтобы программист, написав код проверяющего, должен знать, какой Signature
механизм используется, так как его собственная реализация verify
метода вызывается для проверки подписи. Другими словами, злоумышленник Signature
может всегда возвращать значение true при проверке в попытке обойти проверку безопасности.
Алгоритм подписи может быть, среди прочего, NIST standard DSA, с помощью DSA и SHA-256. Алгоритм задается с помощью того же соглашения, что и для подписей. Алгоритм DSA с помощью алгоритма дайджеста сообщений SHA-256 можно указать, например SHA256withDSA. В случае RSA алгоритм подписывания можно указать как, например, SHA256withRSA. Имя алгоритма должно быть указано, так как по умолчанию нет.
Имя поставщика пакетов шифрования также определяется параметром сигнатуры конструктору и методу verify
. Если поставщик не указан, используется поставщик по умолчанию. Каждая установка может быть настроена для использования определенного поставщика в качестве значения по умолчанию.
К потенциальным приложениям SignedObject относятся: <ul><li> Его можно использовать внутренне для любой среды выполнения Java в качестве неподготовленного маркера авторизации. Это может быть передано без страха, что маркер может быть злонамеренно изменен без обнаружения. <li> Его можно использовать для подписи и сериализации данных или объектов для хранения за пределами среды выполнения Java (например, хранения критически важных данных управления доступом на диске). <li> Nested SignedObjects можно использовать для создания логической последовательности подписей, напоминающей цепочку авторизации и делегирования. </ul>
Добавлено в версии 1.2.
Документация по Java для java.security.SignedObject
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
SignedObject(ISerializable, IPrivateKey, Signature) |
Создает ПодписанныйObject из любого объекта Serializable. |
Свойства
Algorithm |
Извлекает имя алгоритма подписи. |
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
JniIdentityHashCode |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
JniPeerMembers |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. |
Object |
Извлекает инкапсулированный объект. |
PeerReference |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. (Унаследовано от Object) |
Методы
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Dispose() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
Dispose(Boolean) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
GetSignature() |
Извлекает подпись в подписанном объекте в виде массива байтов. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
ToArray<T>() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
Verify(IPublicKey, Signature) |
Проверяет, является ли подпись в этом SignedObject допустимым сигнатурой для объекта, хранящегося внутри, с заданным ключом проверки с помощью указанного обработчика проверки подлинности. |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. |
GetJniTypeName(IJavaPeerable) |
SignedObject — это класс для создания объектов среды выполнения проверки подлинности, целостность которых не может быть скомпрометирована без обнаружения. |