KeyFactory 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
密钥工厂用于将 密钥 (类型 Key不透明加密密钥)转换为 密钥规范 (基础密钥材料的透明表示形式),反之亦然。
[Android.Runtime.Register("java/security/KeyFactory", DoNotGenerateAcw=true)]
public class KeyFactory : Java.Lang.Object
[<Android.Runtime.Register("java/security/KeyFactory", DoNotGenerateAcw=true)>]
type KeyFactory = class
inherit Object
- 继承
- 属性
注解
密钥工厂用于将 密钥 (类型 Key不透明加密密钥)转换为 密钥规范 (基础密钥材料的透明表示形式),反之亦然。
关键工厂是双向的。 也就是说,它们允许你根据给定的密钥规范(键材料)生成不透明的密钥对象,或以合适的格式检索密钥对象的基础密钥材料。
同一密钥可能存在多个兼容的密钥规范。 例如,可以使用 DSAPublicKeySpec 或 X509EncodedKeySpec指定 DSA 公钥。 密钥工厂可用于在兼容的密钥规范之间进行转换。
下面是如何使用密钥工厂从其编码实例化 DSA 公钥的示例。 假设 Alice 已从 Bob 收到数字签名。 Bob 还发送了她的公钥(编码格式),以验证他的签名。 然后 Alice 执行以下操作:
X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);
Signature sig = Signature.getInstance("DSA");
sig.initVerify(bobPubKey);
sig.update(data);
sig.verify(signature);
Android 提供以下KeyFactory算法:<表<><<>>>th Algorithm</th supported API Levels</>><th></tr<>/thead><tbody>><<td>DH</td td>1+/td><></<<>>tr td>DSA</<>td>1+/td 1+<</><td/tr><tr<>td EC</td>><td>11+</td></tr<><>td>RSA</td><td>1+</td></tr<>tr class=“deprecated”><td>X.509</td td<>td>1-8</td<>/tr<>><td>XDH</<>td td>33+</td<>/tr<>/tbody></table>
已在 1.2 中添加。
Java文档java.security.KeyFactory。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| KeyFactory(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
| KeyFactory(KeyFactorySpi, Provider, String) |
创建 KeyFactory 对象。 |
属性
| 名称 | 说明 |
|---|---|
| Algorithm |
获取与此 |
| Class |
返回此 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| JniIdentityHashCode |
密钥工厂用于将 密钥 (类型 |
| JniPeerMembers |
密钥工厂用于将 密钥 (类型 |
| PeerReference |
密钥工厂用于将 密钥 (类型 |
| Provider |
返回此密钥工厂对象的提供程序。 |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
| 名称 | 说明 |
|---|---|
| Clone() |
创建并返回此对象的副本。 (继承自 Object) |
| Dispose() |
密钥工厂用于将 密钥 (类型 |
| Dispose(Boolean) |
密钥工厂用于将 密钥 (类型 |
| Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
| GeneratePrivate(IKeySpec) |
从提供的密钥规范(密钥材料)生成私钥对象。 |
| GeneratePublic(IKeySpec) |
从提供的密钥规范(密钥材料)生成公钥对象。 |
| GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
| GetInstance(String, Provider) |
返回一个 KeyFactory 对象,该对象转换指定算法的公钥/私钥。 |
| GetInstance(String, String) |
返回一个 KeyFactory 对象,该对象转换指定算法的公钥/私钥。 |
| GetInstance(String) |
返回一个 KeyFactory 对象,该对象转换指定算法的公钥/私钥。 |
| GetKeySpec(IKey, Class) |
返回给定键对象的规范(键材料)。 |
| JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
| Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
| NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| ToArray<T>() |
密钥工厂用于将 密钥 (类型 |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| TranslateKey(IKey) |
将密钥对象(其提供程序可能未知或可能不受信任)转换为此密钥工厂的相应密钥对象。 |
| UnregisterFromRuntime() |
密钥工厂用于将 密钥 (类型 |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.DisposeUnlessReferenced() |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.Finalized() |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.JniManagedPeerState |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
密钥工厂用于将 密钥 (类型 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
密钥工厂用于将 密钥 (类型 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
密钥工厂用于将 密钥 (类型 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |