同步代码
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package com.chakracoin.shsm.cert;
|
||||
|
||||
|
||||
import com.sunyard.ssp.BytesUtil;
|
||||
|
||||
import java.security.PublicKey;
|
||||
|
||||
public class SimplePublicKey implements PublicKey {
|
||||
|
||||
private byte[] encoded;
|
||||
|
||||
public SimplePublicKey(String str) {
|
||||
this.encoded = BytesUtil.hexString2Bytes( str );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAlgorithm() {
|
||||
return "EC";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormat() {
|
||||
return "PKCS#8";
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] getEncoded() {
|
||||
return this.encoded;
|
||||
}
|
||||
|
||||
|
||||
public static SimplePublicKey getSimplePublickKey(String der) {
|
||||
|
||||
if (null == der || !der.startsWith("03420004") ) {
|
||||
throw new IllegalArgumentException("公钥格式错误");
|
||||
}
|
||||
|
||||
int headLen = 8;
|
||||
int len = ( der.length() - 8 ) / 2;
|
||||
|
||||
String strcertPKX = der.substring(headLen, headLen + 64);
|
||||
String strcertPKY = der.substring(headLen + len, headLen + len + 64);
|
||||
der = "03420004" + strcertPKX + strcertPKY;
|
||||
|
||||
return new SimplePublicKey("3059301306072A8648CE3D020106082A811CCF5501822D" + der );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user