public class ECKeyUtil extends Object
Constructor and Description |
---|
ECKeyUtil() |
Modifier and Type | Method and Description |
---|---|
static PrivateKey |
decodeECPrivateKey(byte[] d,
String curveName)
解码恢复EC私钥,支持Base64和Hex编码,(基于BouncyCastle)
|
static PrivateKey |
decodeECPrivateKey(String d,
String curveName)
解码恢复EC私钥,支持Base64和Hex编码,(基于BouncyCastle)
|
static PublicKey |
decodeECPublicKey(byte[] encodeByte,
String curveName)
解码恢复EC压缩公钥,支持Base64和Hex编码,(基于BouncyCastle)
|
static PublicKey |
decodeECPublicKey(String encode,
String curveName)
解码恢复EC压缩公钥,支持Base64和Hex编码,(基于BouncyCastle)
见:https://www.cnblogs.com/xinzhao/p/8963724.html |
static byte[] |
encodeECPrivateKey(PrivateKey privateKey)
只获取私钥里的d,32位字节
|
static byte[] |
encodeECPublicKey(PublicKey publicKey)
编码压缩EC公钥(基于BouncyCastle),即Q值
见:https://www.cnblogs.com/xinzhao/p/8963724.html |
static byte[] |
encodeECPublicKey(PublicKey publicKey,
boolean isCompressed)
编码压缩EC公钥(基于BouncyCastle),即Q值
见:https://www.cnblogs.com/xinzhao/p/8963724.html |
static PrivateKey |
generatePrivateKey(org.bouncycastle.asn1.ASN1Encodable privateKey)
将SM2算法的
ASN1Encodable 格式私钥 生成为 PrivateKey |
static PrivateKey |
generateSm2PrivateKey(byte[] privateKeyBytes)
生成SM2私钥,支持包括:
D值
PKCS#8
PKCS#1
OpenSSH格式
|
static PublicKey |
generateSm2PublicKey(byte[] publicKeyBytes)
生成SM2公钥,支持包括:
Q值
X.509
PKCS#1
|
static PublicKey |
generateSm2PublicKey(byte[] x,
byte[] y)
尝试解析转换各种类型公钥为
ECPublicKeyParameters ,支持包括: |
static PublicKey |
getECPublicKey(org.bouncycastle.jce.interfaces.ECPrivateKey privateKey,
org.bouncycastle.jce.spec.ECParameterSpec spec)
根据私钥获取EC公钥
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
getPublicParams(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParameters)
根据私钥参数获取公钥参数
|
static org.bouncycastle.math.ec.ECPoint |
getQFromD(BigInteger d,
org.bouncycastle.jce.spec.ECParameterSpec spec)
根据私钥D值获取公钥的点坐标(Q值)
|
static org.bouncycastle.crypto.params.AsymmetricKeyParameter |
toParams(Key key)
密钥转换为AsymmetricKeyParameter
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(BigInteger d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(byte[] d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(PrivateKey privateKey)
私钥转换为
ECPrivateKeyParameters |
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toPrivateParams(String d,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(BigInteger x,
BigInteger y,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(byte[] xBytes,
byte[] yBytes,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(byte[] pointEncoded,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(org.bouncycastle.math.ec.ECPoint point,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(PublicKey publicKey)
公钥转换为
ECPublicKeyParameters |
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(String pointEncoded,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toPublicParams(String x,
String y,
org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
转换为ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(BigInteger d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(byte[] d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPrivateKeyParameters |
toSm2PrivateParams(String d)
转换为 ECPrivateKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(byte[] q)
转换为 ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(byte[] xBytes,
byte[] yBytes)
转换为SM2的ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(String q)
转换为 ECPublicKeyParameters
|
static org.bouncycastle.crypto.params.ECPublicKeyParameters |
toSm2PublicParams(String x,
String y)
转换为SM2的ECPublicKeyParameters
|
public static org.bouncycastle.crypto.params.ECPublicKeyParameters getPublicParams(org.bouncycastle.crypto.params.ECPrivateKeyParameters privateKeyParameters)
privateKeyParameters
- 私钥参数public static PublicKey getECPublicKey(org.bouncycastle.jce.interfaces.ECPrivateKey privateKey, org.bouncycastle.jce.spec.ECParameterSpec spec)
privateKey
- EC私钥spec
- 密钥规范public static org.bouncycastle.math.ec.ECPoint getQFromD(BigInteger d, org.bouncycastle.jce.spec.ECParameterSpec spec)
d
- 私钥d值spec
- 密钥规范public static byte[] encodeECPrivateKey(PrivateKey privateKey)
privateKey
- PublicKey
,必须为org.bouncycastle.jce.interfaces.ECPrivateKeypublic static PrivateKey decodeECPrivateKey(String d, String curveName)
d
- 私钥d值(Base64或Hex格式)curveName
- EC曲线名,例如SM2Constant.SM2_DOMAIN_PARAMS
public static PrivateKey decodeECPrivateKey(byte[] d, String curveName)
d
- 私钥d值curveName
- EC曲线名,例如SM2Constant.SM2_DOMAIN_PARAMS
public static byte[] encodeECPublicKey(PublicKey publicKey)
publicKey
- PublicKey
,必须为org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKeypublic static byte[] encodeECPublicKey(PublicKey publicKey, boolean isCompressed)
publicKey
- PublicKey
,必须为org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKeyisCompressed
- 是否压缩public static PublicKey decodeECPublicKey(String encode, String curveName)
encode
- 压缩公钥curveName
- EC曲线名public static PublicKey decodeECPublicKey(byte[] encodeByte, String curveName)
encodeByte
- 压缩公钥curveName
- EC曲线名,例如SM2Constant.SM2_DOMAIN_PARAMS
public static org.bouncycastle.crypto.params.AsymmetricKeyParameter toParams(Key key)
key
- PrivateKey或者PublicKeypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(byte[] q)
q
- 公钥Q值public static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(String q)
q
- 公钥Q值public static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(String x, String y)
x
- 公钥Xy
- 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toSm2PublicParams(byte[] xBytes, byte[] yBytes)
xBytes
- 公钥XyBytes
- 公钥Ypublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(String x, String y, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
x
- 公钥Xy
- 公钥YdomainParameters
- ECDomainParametersnull
则返回null
public static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(byte[] xBytes, byte[] yBytes, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
xBytes
- 公钥XyBytes
- 公钥YdomainParameters
- ECDomainParameters曲线参数public static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(BigInteger x, BigInteger y, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
x
- 公钥Xy
- 公钥YdomainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(String pointEncoded, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
pointEncoded
- 被编码的曲线坐标点domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(byte[] pointEncoded, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
pointEncoded
- 被编码的曲线坐标点domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(org.bouncycastle.math.ec.ECPoint point, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
point
- 曲线坐标点domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPublicKeyParameters toPublicParams(PublicKey publicKey)
ECPublicKeyParameters
publicKey
- 公钥,传入null返回nullECPublicKeyParameters
或nullpublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(String d)
d
- 私钥d值16进制字符串public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(byte[] d)
d
- 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toSm2PrivateParams(BigInteger d)
d
- 私钥d值public static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(String d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d
- 私钥d值16进制字符串domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(byte[] d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d
- 私钥d值domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(BigInteger d, org.bouncycastle.crypto.params.ECDomainParameters domainParameters)
d
- 私钥d值domainParameters
- ECDomainParameterspublic static org.bouncycastle.crypto.params.ECPrivateKeyParameters toPrivateParams(PrivateKey privateKey)
ECPrivateKeyParameters
privateKey
- 私钥,传入null返回nullECPrivateKeyParameters
或nullpublic static PrivateKey generatePrivateKey(org.bouncycastle.asn1.ASN1Encodable privateKey)
ASN1Encodable
格式私钥 生成为 PrivateKey
privateKey
- ASN1Encodable
格式的私钥PrivateKey
public static PrivateKey generateSm2PrivateKey(byte[] privateKeyBytes)
privateKeyBytes
- 私钥ECPrivateKeyParameters
public static PublicKey generateSm2PublicKey(byte[] publicKeyBytes)
publicKeyBytes
- 公钥ECPublicKeyParameters
public static PublicKey generateSm2PublicKey(byte[] x, byte[] y)
ECPublicKeyParameters
,支持包括:x
- 坐标Xy
- 坐标yECPublicKeyParameters
Copyright © 2025. All rights reserved.