GMOpenSSL
GMOpenSSL copied to clipboard
3.0.3 版本打印出所有曲线,发现不包含 sm2
+ (int)listAllSupportedECCurve {
@autoreleasepool {
// Initialize OpenSSL
OPENSSL_init_crypto(0, NULL);
size_t num_curves = EC_get_builtin_curves(NULL, 0);
if (num_curves == 0) {
fprintf(stderr, "Error getting built-in curves\n");
return 1;
}
EC_builtin_curve *curves = (EC_builtin_curve *)malloc(num_curves * sizeof(EC_builtin_curve));
if (curves == NULL) {
fprintf(stderr, "Error allocating memory\n");
return 1;
}
num_curves = EC_get_builtin_curves(curves, num_curves);
for (size_t i = 0; i < num_curves; i++) {
int nid = curves[i].nid;
// Create a temporary EC_GROUP object
EC_GROUP *group = EC_GROUP_new_by_curve_name(nid);
if (group == NULL) {
fprintf(stderr, "Error creating EC_GROUP\n");
return 1;
}
// Get the curve name as a string
const char *curve_name = OBJ_nid2sn(nid);
// Print information about the curve
NSLog(@"Curve Name: %s", curve_name);
NSLog(@"Curve NID: %d", nid);
// Additional information if needed
// EC_GROUP_print_fp(stdout, group, 4);
// Free the temporary EC_GROUP object
EC_GROUP_free(group);
//NSLog(@"\n");
}
}
return 0;
}
Curve Name: secp112r1 Curve NID: 704 Curve Name: secp112r2 Curve NID: 705 Curve Name: secp128r1 Curve NID: 706 Curve Name: secp128r2 Curve NID: 707 Curve Name: secp160k1 Curve NID: 708 Curve Name: secp160r1 Curve NID: 709 Curve Name: secp160r2 Curve NID: 710 Curve Name: secp192k1 Curve NID: 711 Curve Name: secp224k1 Curve NID: 712 Curve Name: secp224r1 Curve NID: 713 Curve Name: secp256k1 Curve NID: 714 Curve Name: secp384r1 Curve NID: 715 Curve Name: secp521r1 Curve NID: 716 Curve Name: prime192v1 Curve NID: 409 Curve Name: prime192v2 Curve NID: 410 Curve Name: prime192v3 Curve NID: 411 Curve Name: prime239v1 Curve NID: 412 Curve Name: prime239v2 Curve NID: 413 Curve Name: prime239v3 Curve NID: 414 Curve Name: prime256v1 Curve NID: 415 Curve Name: sect113r1 Curve NID: 717 Curve Name: sect113r2 Curve NID: 718 Curve Name: sect131r1 Curve NID: 719 Curve Name: sect131r2 Curve NID: 720 Curve Name: sect163k1 Curve NID: 721 Curve Name: sect163r1 Curve NID: 722 Curve Name: sect163r2 Curve NID: 723 Curve Name: sect193r1 Curve NID: 724 Curve Name: sect193r2 Curve NID: 725 Curve Name: sect233k1 Curve NID: 726 Curve Name: sect233r1 Curve NID: 727 Curve Name: sect239k1 Curve NID: 728 Curve Name: sect283k1 Curve NID: 729 Curve Name: sect283r1 Curve NID: 730 Curve Name: sect409k1 Curve NID: 731 Curve Name: sect409r1 Curve NID: 732 Curve Name: sect571k1 Curve NID: 733 Curve Name: sect571r1 Curve NID: 734 Curve Name: c2pnb163v1 Curve NID: 684 Curve Name: c2pnb163v2 Curve NID: 685 Curve Name: c2pnb163v3 Curve NID: 686 Curve Name: c2pnb176v1 Curve NID: 687 Curve Name: c2tnb191v1 Curve NID: 688 Curve Name: c2tnb191v2 Curve NID: 689 Curve Name: c2tnb191v3 Curve NID: 690 Curve Name: c2pnb208w1 Curve NID: 693 Curve Name: c2tnb239v1 Curve NID: 694 Curve Name: c2tnb239v2 Curve NID: 695 Curve Name: c2tnb239v3 Curve NID: 696 Curve Name: c2pnb272w1 Curve NID: 699 Curve Name: c2pnb304w1 Curve NID: 700 Curve Name: c2tnb359v1 Curve NID: 701 Curve Name: c2pnb368w1 Curve NID: 702 Curve Name: c2tnb431r1 Curve NID: 703 Curve Name: wap-wsg-idm-ecid-wtls1 Curve NID: 735 Curve Name: wap-wsg-idm-ecid-wtls3 Curve NID: 736 Curve Name: wap-wsg-idm-ecid-wtls4 Curve NID: 737 Curve Name: wap-wsg-idm-ecid-wtls5 Curve NID: 738 Curve Name: wap-wsg-idm-ecid-wtls6 Curve NID: 739 Curve Name: wap-wsg-idm-ecid-wtls7 Curve NID: 740 Curve Name: wap-wsg-idm-ecid-wtls8 Curve NID: 741 Curve Name: wap-wsg-idm-ecid-wtls9 Curve NID: 742 Curve Name: wap-wsg-idm-ecid-wtls10 Curve NID: 743 Curve Name: wap-wsg-idm-ecid-wtls11 Curve NID: 744 Curve Name: wap-wsg-idm-ecid-wtls12 Curve NID: 745 Curve Name: Oakley-EC2N-3 Curve NID: 749 Curve Name: Oakley-EC2N-4 Curve NID: 750 Curve Name: brainpoolP160r1 Curve NID: 921 Curve Name: brainpoolP160t1 Curve NID: 922 Curve Name: brainpoolP192r1 Curve NID: 923 Curve Name: brainpoolP192t1 Curve NID: 924 Curve Name: brainpoolP224r1 Curve NID: 925 Curve Name: brainpoolP224t1 Curve NID: 926 Curve Name: brainpoolP256r1 Curve NID: 927 Curve Name: brainpoolP256t1 Curve NID: 928 Curve Name: brainpoolP320r1 Curve NID: 929 Curve Name: brainpoolP320t1 Curve NID: 930 Curve Name: brainpoolP384r1 Curve NID: 931 Curve Name: brainpoolP384t1 Curve NID: 932 Curve Name: brainpoolP512r1 Curve NID: 933 Curve Name: brainpoolP512t1 Curve NID: 934 EC_KEY_set_group failed 8162347628:error:100AE081:lib(16):func(174):reason(129):ec_curve.c:3179: