• 不使用PEM 文件建立SSL通道


      1 
      2 static unsigned char public_pem[]="-----BEGIN CERTIFICATE-----
    "
      3     "MIIDazCCAlOgAwIBAgIUEk+7+NYeiinQ6EwHUC878nYvrxswDQYJKoZIhvcNAQEL
    "
      4     "BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
    "
      5     "GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDA2MTcwNzA1NThaFw0yMzA2
    "
      6     "MTcwNzA1NThaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
    "
      7     "HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
    "
      8     "AQUAA4IBDwAwggEKAoIBAQC8eer+gOcrcIx+47sEakT97kM4xGBpEGDNuc79YpnT
    "
      9     "LbKPfH2UnCAN6mOR6RLGXytrpwtSO54LLQ6CW0mapNQZLcYc5HltcyFM+revsybx
    "
     10     "ju39uJZ1tTGvKgPuHc8jmHiCDzX/uqqJTV9A6+S4jdrre42X6pAtMK7aRdjWuRY3
    "
     11     "Y5N78bR3pIwPo5phSVvU7SnYU6LbZ20oPq0sQMms6gfIDVTY8Oea2ryD/CI/wm4L
    "
     12     "Zjsic3QBmLwu7dEj8OoglK/SY4M5JToy0xiA9JVZ1O/qO5x+DlP0I5s/yUGGYmrh
    "
     13     "w7cCUuE/Eeb0U4Hy2RPVsWzZcyYLIlsZ/wVoNHUat4YxAgMBAAGjUzBRMB0GA1Ud
    "
     14     "DgQWBBQCYXVLBTHKI6bQdZsF3wPAi/OCxzAfBgNVHSMEGDAWgBQCYXVLBTHKI6bQ
    "
     15     "dZsF3wPAi/OCxzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAJ
    "
     16     "AEjziL3NdqlmeQcC3ZmfDYgDt8qUKrNtQBhvOu9/le1lcFOOpNag7WoLFR2Yktm3
    "
     17     "Mea6H9PhsldL0cOQPoe0HpkUyXWBEip0pthNwBQzGU5FAL4TP7MhSQROBtLJf31s
    "
     18     "jaIVh8+CsM0TE3jbv2w1b4+tARFoJitUic71eOEWhgJ+Fm0yGAlUhmIHPx5SzehG
    "
     19     "waDrfaSp6gWRNO+5W0Y55RVCuEMSmPt783vVum5f+rkdhaowYGTW6FvmXoAdP/a1
    "
     20     "Ryl3ighzGfrgiAHpfftj1u1HCmFvMHgdt16/wSmoHRo0vKSv+/hKNAhr+USsyXaw
    "
     21     "KHU3w4paqT+ph/8uKPI1
    "
     22     "-----END CERTIFICATE-----
    "
     23     ;
     24 
     25 
     26 static unsigned char private_pem[]="-----BEGIN RSA PRIVATE KEY-----
    "
     27     "MIIEowIBAAKCAQEAvHnq/oDnK3CMfuO7BGpE/e5DOMRgaRBgzbnO/WKZ0y2yj3x9
    "
     28     "lJwgDepjkekSxl8ra6cLUjueCy0OgltJmqTUGS3GHOR5bXMhTPq3r7Mm8Y7t/biW
    "
     29     "dbUxryoD7h3PI5h4gg81/7qqiU1fQOvkuI3a63uNl+qQLTCu2kXY1rkWN2OTe/G0
    "
     30     "d6SMD6OaYUlb1O0p2FOi22dtKD6tLEDJrOoHyA1U2PDnmtq8g/wiP8JuC2Y7InN0
    "
     31     "AZi8Lu3RI/DqIJSv0mODOSU6MtMYgPSVWdTv6jucfg5T9CObP8lBhmJq4cO3AlLh
    "
     32     "PxHm9FOB8tkT1bFs2XMmCyJbGf8FaDR1GreGMQIDAQABAoIBADEYFNUsYIrZK0+W
    "
     33     "JE3XHJeEa7Aqvu4/HOgZoUgxWd4/RgbIJ7IBJPxa9Iq6SnCvs5C8F1/ZNaa1mtTr
    "
     34     "0HVev/y7BqLaBKM03RS/Lf+vS9KaJ3XykgahJwr4h8OLsjwUaDeAnNE7H1bad5hi
    "
     35     "mdZU5RR3v381005iIvmqPfxYg+fzLi7bWWoBH063Wsrx8paznTv1hpeDkF4Xt4n3
    "
     36     "2wktEasxdobmzodJ5gMJoBpVEQ+KRBCrKimCxyt3ZjWlRNC3iTa9mKlAQMBdGNqk
    "
     37     "OkiUvLCzVNMcndHCCe42Bo5xqxDq9P70aLgFQzf0jWghzoYlpZjqqehqLdWvqzQT
    "
     38     "eHgXjc0CgYEA8b0IBNoQv/Gion6Sj8E3cF2Zj82Gg/3sBkRBxZwwyeXCwa3MASOr
    "
     39     "RV1d/kD6J8Crjp1pGwGsqeA099LzvVKXfZ0jx8CR3bJ3wwgwOn+i2kj1GCott6DG
    "
     40     "58t5+hVijoFJITLkEY0zcvS2gtnDL/EIbPdBNk4oRTynJhqKquycizMCgYEAx5h4
    "
     41     "OIKuXawz5xmxqRTFhDgluU0o/9CRwvBX1pitcSrAPTwhPBenPEqwY4y71js0B212
    "
     42     "hInbp80GxiK0G03mu50s5/O17XIB9+Jp+VW/vAVrcdSod0eIQS36a0pOUDLcLoSQ
    "
     43     "17JCVtPfcG3PkC9mC539DCt3sJUVhApV0WKESQsCgYEA672jX0/lO7oCFyMF/Gi5
    "
     44     "jrvIsEMGphtvG6Fe3r31mj6VEdlR8957/LYTnopxKWksJHT/ddXJMxSxsugmx/8O
    "
     45     "OvKOXRM/bIrJXgnTNokYIHU7hyhC0ytYLd3xgt9t8HjF/zkozrD7dmSMw8hnH46X
    "
     46     "3+Oz1aicfwCqJG+HwS3jb58CgYAixVwENDfeF7a/Bsndc8HpA8MGofuHfTU3aZlT
    "
     47     "yCtG8LSmtkfv6Qr4ROavoP/EFXI97QLdmgqLE/ufHsKTkyGkA4CkM9+4qsjO/0GI
    "
     48     "7zhEsAkEvpBOn0aMXE8oy7wS2pli/TMicGqAJ87gDjE/pBI56d8AdL4YJBCofQhw
    "
     49     "PqJe+wKBgHPpbMNxYofSIf9vkaE/ukg00DFrNO7MX7Q6FOQG3omUQ9456hRtySvA
    "
     50     "PuuuwX7qWnoiauwJ+G4Gs+7lX9MMGjhlpHX2qPnb8YvliFXuoDqG7XwCtLmhXM3a
    "
     51     "0ycSMi0AYO6qQ5F2kIcHewOrghdK5PsT7Xj22ZmkS8/o3WdV6h1B
    "
     52     "-----END RSA PRIVATE KEY-----
    ";
     53 
     54 
     55 EVP_PKEY *pEvp_pkey = NULL;
     56     X509 *pX509 = NULL;
     57 
     58     BIO *publicbio = BIO_new_mem_buf (public_pem, -1);
     59     assert (publicbio);
     60     PEM_read_bio_X509 (publicbio, &pX509, NULL, 0);
     61     BIO_free (publicbio);
     62 
     63     BIO *privatebio = BIO_new_mem_buf (private_pem, -1);
     64     assert (privatebio);
     65     PEM_read_bio_PrivateKey (privatebio, &pEvp_pkey, 0, 0);
     66     BIO_free (privatebio);
     67 
     68     int e;
     69     e = SSL_CTX_use_certificate (ctx, pX509);
     70     if (e <= 0) ERR_print_errors_fp(stderr);
     71     assert (e > 0);
     72 
     73     e = SSL_CTX_use_PrivateKey (ctx, pEvp_pkey);
     74     if (e <= 0) ERR_print_errors_fp(stderr);
     75     assert (e > 0);
    PS:会笑的人,运气通常都会比别人好。
  • 相关阅读:
    GOF23设计模式汇总
    获取表单提交MVC错误信息
    Spring.Net
    简单工厂、工厂方法和抽象工厂
    Json和JsonP
    mysql8无法用navicat连接(mysql8加密方式的坑)
    (4.16)mysql备份还原——物理备份之XtraBackup实践
    mysql如何下载历史版本?
    如何测试端口通不通(四种方法)
    linux移动复制删除命令
  • 原文地址:https://www.cnblogs.com/thinkinc999/p/13232084.html
Copyright © 2020-2023  润新知