STM32F1系列IC用于RSA加密问题

所属分类:STM32F系列 浏览数:390 提问者:梦幻笑容 提问时间:2018-08-03

问:

RSA加密密匙由密匙模数和密匙指数组成,可是网上的密匙都是一串字符串,怎么分解为密匙的模数和指数,密匙结构体(RSAprivKey_stt)是怎么填充的?


答:int32_t RSA_TEST(void) { int32_t ret; // 对于512bit的密钥, block length = 512/8 – 11 = 53 字节 uint8_t modulus[1024/8]= {0X71,0XEA,0X16,0XE5}; // 模数的大小 1024 位为128 字节 uint8_t private_exponent[1024/8]= {0X3F,0XAC,0XC4,0X25}; // 密匙指数 uint8_t public_exponent[3]= {0x01,0x00,0x01}; // 公匙指数,一般是65537 uint8_t digest[CRL_SHA256_SIZE]= {1,2,3,4,5,6,7,8,9,10}; // 要签名的消息 uint8_t signature[1024/8]; // 已签名的消息 RSAprivKey_stt privKey; RSApubKey_stt pubKey; membuf_stt mb;// 函数计算用的预分配内存 uint8_t preallocated_buffer[4096]; // 函数计算用的预分配内存 //Set up the membuf_stt structure to a preallocated (on stack) buffer of 4kB mb.mSize = sizeof(preallocated_buffer); mb.mUsed = 0; mb.pmBuf = preallocated_buffer; // Set values of private key privKey.mExponentSize = sizeof(private_exponent); privKey.pmExponent = private_exponent; privKey.mModulusSize = sizeof(modulus); privKey.pmModulus = modulus; //Generate
回答者:梦幻笑容 回答时间:2018-08-03

答:// Set values of private key privKey.mExponentSize = sizeof(private_exponent); privKey.pmExponent = private_exponent; privKey.mModulusSize = sizeof(modulus); privKey.pmModulus = modulus; //Generate the signature, knowing that the hash has been generated by SHA-256 ret = RSA_PKCS1v15_Sign(&privKey, digest, E_SHA256, signature, &mb); if (ret != RSA_SUCCESS) { return(ERROR); }
回答者:梦幻笑容 回答时间:2018-08-03

答:// Set values of public key pubKey.mExponentSize = sizeof(public_exponent); pubKey.pmExponent = public_exponent; pubKey.mModulusSize = sizeof(modulus); pubKey.pmModulus = modulus; //Verify the signature, knowing that the hash has been generated by SHA-256 ret = RSA_PKCS1v15_Verify(&pubKey, digest, E_SHA256, signature, &mb); if (ret != SIGNATURE_VALID ) { return(ERROR); } else { return(SUCCESS); }
回答者:梦幻笑容 回答时间:2018-08-03

答:上面为测试代码,生成签名时候返回5103, #define RSA_ERR_BAD_KEY (int32_t) (5103) /*!< rsa Invalid Key */ 这种情况怎么破?有人晓得不?SOS!!
回答者:梦幻笑容 回答时间:2018-08-03

登录后回答。
图书推荐
漫画半导体(高清版)

漫画半导体(高清版)

这是一本实用性很强的图书,,以漫画的形式更易于让人接受,边读故事边学知识,轻松且易于记忆。
算法心得:高效算法的奥秘

算法心得:高效算法的奥秘

本书给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门...
基于STM8S-无刷直流电机控制应用

基于STM8S-无刷直流电机控制应用

无刷直流电机是21世纪最有发展前景的新型电机之一。本书以STM8S单片机为控制核心...
广告