respid.java
来自「bouncycastle 是一个JAVA安全提供者」· Java 代码 · 共 92 行
JAVA
92 行
package org.bouncycastle.ocsp;import java.io.*;import java.security.*;import org.bouncycastle.jce.*;import org.bouncycastle.asn1.*;import org.bouncycastle.asn1.ocsp.*;import org.bouncycastle.asn1.x509.*;import javax.security.auth.x500.X500Principal;/** * Carrier for a ResponderID. */public class RespID{ ResponderID id; public RespID( ResponderID id) { this.id = id; } public RespID( X500Principal name) { try { this.id = new ResponderID(new X509Principal(name.getEncoded())); } catch (IOException e) { throw new IllegalArgumentException("can't decode name."); } } public RespID( PublicKey key) throws OCSPException { try { MessageDigest digest = MessageDigest.getInstance("SHA1"); ASN1InputStream aIn = new ASN1InputStream( new ByteArrayInputStream(key.getEncoded())); SubjectPublicKeyInfo info = SubjectPublicKeyInfo.getInstance( aIn.readObject()); ByteArrayOutputStream bOut = new ByteArrayOutputStream(); ASN1OutputStream aOut = new ASN1OutputStream(bOut); aOut.writeObject(info.getPublicKey()); digest.update(bOut.toByteArray()); ASN1OctetString keyHash = new DEROctetString(digest.digest()); this.id = new ResponderID(keyHash); } catch (Exception e) { throw new OCSPException("problem creating ID: " + e, e); } } public ResponderID toASN1Object() { return id; } public boolean equals( Object o) { if (!(o instanceof RespID)) { return false; } RespID obj = (RespID)o; return id.equals(obj.id); } public int hashCode() { return id.hashCode(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?