rick

Results 11 comments of rick

@zqzal 楼主我这边连Android的服务都扫描不出来,请问你怎么解决的?

> 参考sm2.h 中SM2_CIPHERTEXT结构,可以将C1,C3,C2这几个值分别memcpy到point, hash, ciphertext中并设置ciphertext_size = sizeof C2, 即可用sm2_ciphertext_to_der 将其转换为标准的ASN.1编码密文格式 和OpenSSL SM2加解密不能互通,后端又不肯改头大,直接使用OpenSSL包的增量太大了····

> @voyager11 其中一种方案是去兼容BC库,这里给出加密的转换过程,解密与其类似 > > ### BC库的非加密输出格式是 04+X+Y+HASH+ciphertext > * 04表示0x04,1字节 > * X 去取SM2_CIPHERTEXT里面point.x > * Y 去取SM2_CIPHERTEXT里面point.y > * HASH 去取SM2_CIPHERTEXT里面hash > * ciphertext 取密文 > > ###...

> gmssl命令行生成的加密串为 asn1(c1x, c1y, c2,c3) , 大概率是 用openssl生成的字符串的格式不对,需要进行整合,PS: 我在网上找一圈都没找到openssl命令的ecc 非对称加密的命令,具体命令是什么,你用命令加密一个串出来,我看看是什么格式的 实现方法: + (nullable NSData *)enData:(NSData *)plainData hexPubKey:(NSString *)hexPubKey{ uint8_t *plain_bytes = (uint8_t *)plainData.bytes; // 明文 const char *public_key = hexPubKey.UTF8String;...

int sm2_encrypt(const EC_KEY *key, const EVP_MD *digest, const uint8_t *msg, size_t msg_len, uint8_t *ciphertext_buf, size_t *ciphertext_len) { int rc = 0, ciphertext_leni; size_t i; BN_CTX *ctx = NULL; BIGNUM *k...

> 你这段是加密的,你这段加密的代码,用你自己的解密的可以解出来不 可以解的

> 你这段是加密的,你这段加密的代码,用你自己的解密的可以解出来不 > ``` > 加密结果: > 306E02201C20E109582352A8500BFFF7F23B72A2CC4D7DDD989BAC24D946B7EB501D531002205F9A26785A19D33CF1CAADD5D4987014C7A07CA4A2DF60B2D02B676D72EAD01A04209738C376FFADCDA2B8303FDB5ABF5E53A655C0A97835E93007501FD9BD33C8DC04064B01535F00E6 > ``` > > 格式上没有问题, 这个格式与 gmssl 加密出来看 格式一样的,那就是别的问题,只能你一步步调试了, 好的,我再调试看看。感谢!!

@lpilp 我调试gmssl解密OpenSSL密文的时候在下面的这个方法出错了,**in != tag为true导致解密失败这个tag对应的宏是 ASN1_TAG_SEQUENCE = 0x30, int asn1_type_from_der(int tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen) { if (!d || !dlen || !in || !(*in) ||...