开发者社区 > 通义大模型 > 正文

通义灵码提问"RSA验签"示例代码输出问题

我向通义灵码提问需要一个mbedtls库的RSA公钥验签示例代码,通义灵码输出到公钥数据部分卡死,这是什么问题呢?
输出代码如下:

#include <stdio.h>
#include <string.h>
#include <mbedtls/platform.h>
#include <mbedtls/debug.h>
#include <mbedtls/entropy.h>
#include <mbedtls/ctr_drbg.h>
#include <mbedtls/pk.h>
#include <mbedtls/md.h>
#include <mbedtls/rsa.h>

int main() {
    // 初始化 Mbed TLS 库
    mbedtls_platform_setup(NULL);

    // 创建熵源和随机数生成器上下文
    mbedtls_entropy_context entropy;
    mbedtls_ctr_drbg_context ctr_drbg;

    mbedtls_entropy_init(&entropy);
    mbedtls_ctr_drbg_init(&ctr_drbg);

    if (mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) "my seed", 9)) {
        printf("Failed to seed ctr_drbg\n");
        goto exit;
    }

    // 创建公钥上下文
    mbedtls_pk_context pk;
    mbedtls_pk_init(&pk);

    // 公钥数据(PEM 格式)
    const char *public_key_pem = 
        "-----BEGIN PUBLIC KEY-----\n"
        "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA77oXvZ+R5WJUHqXsDfLl\n"
        "uFyNz3B3t55b45eOQa2r12345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234567890123456789012345678901234\n"
        "5678901234567890123456789012345678901234567890123456789012345678\n"
        "901234567890123456789012345678901234567890123456789012345678901\n"
        "234567890123456789012345678901234

展开
收起
游客zswpz2vx4dthe 2024-09-05 13:08:00 43 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    ,公钥数据在最后被截断了。一个有效的 PEM 格式的公钥应该以 "-----END PUBLIC KEY-----\n" 结尾。如果公钥数据不完整,尝试解析它时将导致程序失败。

    解析问题:如果公钥格式不正确或者在解析过程中遇到错误,也可能导致程序异常。

    2024-09-09 09:41:52
    赞同 92 展开评论 打赏

通义千问大模型家族全面升级更大参数规模模型首次面世,全新通义千问2.0版本欢迎体验。https://tongyi.aliyun.com/

相关电子书

更多
AI 编程技术周 | 通义灵码公开课 第一期 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载