ooojerryooo / fabric-java-sdk-gm

Apache License 2.0
1 stars 3 forks source link

fabric-java-sdk-gm对应的fabric版本是tjfoc的gm方案吗? #1

Open point0mine opened 3 years ago

point0mine commented 3 years ago

您好,请问fabric-java-sdk-gm对应的fabric1.4.4版本是使用tjfoc的gmsm、gmtls库的方案吗?fabric-java-sdk-gm更新到什么程度了?能测试了吗?

ooojerryooo commented 3 years ago

目前只支持国密的签名证书,通讯证书仍然是ECC,这个SDK对应的是我自己改的fabric-mygm-1.4.4和fabric-ca-mygm-1.4.4。 证书不能使用cryptogen生成,需要用ca自己生成全套证书。全部都能跑通,可以直接使用。

point0mine commented 3 years ago

@ooojerryooo fabric国密go版本的我改完了,但是做java -sdk国密改造的时候,在bytesToPrivateKey方法获取私钥的时候解析报错了,是我的私钥生成的有问题吗?或者自己是改多了?之前记得有些地方是用ECDSA来代替SM相关信息的,看别人的国密私钥解析后算法也是ECDSA

ooojerryooo commented 3 years ago

@point0mine 那可能是私钥有问题,自己这边解析没有问题,你看看

`

/**
 * Return PrivateKey  from pem bytes.
 *
 * @param pemKey pem-encoded private key
 */
@Override
public PrivateKey bytesToPrivateKey(byte[] pemKey) throws CryptoException {
    PrivateKey pk;
    try {
        PemReader pr = new PemReader(new StringReader(new String(pemKey)));
        PemObject po = pr.readPemObject();
        PEMParser pem = new PEMParser(new StringReader(new String(pemKey)));

        if (po.getType().equals("PRIVATE KEY")) {
            pk = new JcaPEMKeyConverter().getPrivateKey((PrivateKeyInfo) pem.readObject());
        } else {
            logger.trace("Found private key with type " + po.getType());
            PEMKeyPair kp = (PEMKeyPair) pem.readObject();
            pk = new JcaPEMKeyConverter().getPrivateKey(kp.getPrivateKeyInfo());
        }
    } catch (Exception e) {
        throw new CryptoException("Failed to convert private key bytes", e);
    }
    return pk;
}

`

ooojerryooo commented 3 years ago

@point0mine 对了,我改的这个版本是ECC和国密都支持的,创建加密套件的时候指定一下就行了。

Zhong-Jack commented 3 years ago

@point0mine 对了,我改的这个版本是ECC和国密都支持的,创建加密套件的时候指定一下就行了。

请问怎么指定,是把SHA2改成SM3吗

Zhong-Jack commented 3 years ago

@ooojerryooo fabric国密go版本的我改完了,但是做java -sdk国密改造的时候,在bytesToPrivateKey方法获取私钥的时候解析报错了,是我的私钥生成的有问题吗?或者自己是改多了?之前记得有些地方是用ECDSA来代替SM相关信息的,看别人的国密私钥解析后算法也是ECDSA

@ooojerryooo fabric国密go版本的我改完了,但是做java -sdk国密改造的时候,在bytesToPrivateKey方法获取私钥的时候解析报错了,是我的私钥生成的有问题吗?或者自己是改多了?之前记得有些地方是用ECDSA来代替SM相关信息的,看别人的国密私钥解析后算法也是ECDSA 请问你有跑通他这个国密SDK吗