Keresés

Új hozzászólás Aktív témák

  • peterszky

    őstag

    válasz doc #2 üzenetére

    Code:: Blocks tényleg egész jó, viszont a KDeveloppal nem tudtam igazán megbarátkozni.
    A C:: B Linux alatt is megy?

    [ Szerkesztve ]

    What else you gonna do on a Saturday?

  • peterszky

    őstag

    Lenne egy OpenSSL kérdésem:

    $ openssl cms -verify -in signed_file -inform DER -CAfile key.pem > plain_file
    Verification successful

    Ezt próbálom a C-s library segítségével egy programba átültetni, de nem igazán sikerült eddig megoldást találnom. A parancssori jól működik.

    Az alap példából indultam ki, unable to get local issuer certificate hibával jön vissza.

    /* Simple S/MIME verification example */
    #include <openssl/pem.h>
    #include <openssl/cms.h>
    #include <openssl/err.h>

    int main(int argc, char **argv)
    {
    BIO *in = NULL, *out = NULL, *tbio = NULL, *cont = NULL;
    X509_STORE *st = NULL;
    X509 *cacert = NULL;
    CMS_ContentInfo *cms = NULL;

    int ret = 1;

    OpenSSL_add_all_algorithms();
    ERR_load_crypto_strings();

    /* Set up trusted CA certificate store */

    st = X509_STORE_new();

    /* Read in CA certificate */
    tbio = BIO_new_file(argv[1], "r");

    if (!tbio)
    goto err;

    cacert = PEM_read_bio_X509(tbio, NULL, 0, NULL);

    if (!cacert)
    goto err;

    if (!X509_STORE_add_cert(st, cacert))
    goto err;

    /* Open message being verified */

    in = BIO_new_file(argv[2], "r");

    if (!in)
    goto err;

    /* parse message */
    //cms = SMIME_read_CMS(in, &cont);
    cms = d2i_CMS_bio(in, NULL);

    if (!cms)
    goto err;

    /* File to output verified content to */
    out = BIO_new_file(argv[3], "w");
    if (!out)
    goto err;

    if (!CMS_verify(cms, NULL, st, cont, out, 0))
    {
    fprintf(stderr, "Verification Failure\n");
    goto err;
    }

    fprintf(stderr, "Verification Successful\n");

    ret = 0;

    err:

    if (ret)
    {
    fprintf(stderr, "Error Verifying Data\n");
    ERR_print_errors_fp(stderr);
    }

    if (cms)
    CMS_ContentInfo_free(cms);

    if (cacert)
    X509_free(cacert);

    if (in)
    BIO_free(in);
    if (out)
    BIO_free(out);
    if (tbio)
    BIO_free(tbio);

    return ret;

    }

    [ Szerkesztve ]

    What else you gonna do on a Saturday?

Új hozzászólás Aktív témák