begin process at 2012 02 14 10:25:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Programmation c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Programmation c

samedi 26 octobre 2002 à 14:42:17 | Programmation c

iljamila

Je travaille sous linux, avec la programmation c.
Voilà, j'ai un programme de signature numérique qui entre un fichier en lecture afin de le signer. Mais, j'ai remarqué que même si je fais entrer un fichier vide j'ai comme même la signature, sinon si je fais un mv fichier_initiale fichier_nouveau pour changer son contenu celà engendre un problème au niveau du terminal (bash ilisible).
Ici le code :
#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>
#include <openssl/err.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <string.h>
int main ()
{
int err;
int sig_len;
unsigned char sig_buf [4096];
static char certfile[] = "cert.pem";
static char keyfile[] = "key.pem";
static char fichierfile[] = "ter" ;
EVP_MD_CTX md_ctx;
EVP_PKEY * pkey;
FILE * fp;
X509 * x509;
char szBuffer[1024];
unsigned int n;
/* Just load the crypto library error strings,
* SSL_load_error_strings() loads the crypto AND the SSL ones */
/* SSL_load_error_strings();*/
ERR_load_crypto_strings();
/* Read private key */
fp = fopen (keyfile, "r");
if (fp == NULL) exit (1);
pkey = PEM_read_PrivateKey(fp, NULL, 0, NULL);
fclose (fp);
if (pkey == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Do the signature */
if((fp = fopen(fichierfile, "r")) != NULL) /*on ouvre le fichier et verifie si on y arrive*/
{ while (!feof(fp)) {
fread(&szBuffer, sizeof(szBuffer),1, fp); /*on range les caractere dans le buffer */
if(szBuffer == '\0') //si c'est la fin de la ligne
printf("\n"); //on "affiche" un saut de ligne
printf("%s",szBuffer); /*on affiche ce que contient le buffer */ } }
EVP_SignInit (&md_ctx, EVP_sha1());
n = strlen(szBuffer) ;
printf("la valeur de n: %u \n ", n);
EVP_SignUpdate (&md_ctx, szBuffer, n);
sig_len = sizeof(sig_buf);
err = EVP_SignFinal (&md_ctx, sig_buf, &sig_len, pkey);
fclose(fp);
printf("la signature est: %s \n ", sig_buf);
if (err != 1) {
ERR_print_errors_fp(stderr);
exit (1); }
EVP_PKEY_free (pkey);
/* Read public key */
fp = fopen (certfile, "r");
if (fp == NULL) exit (1);
x509 = PEM_read_X509(fp, NULL, 0, NULL);
fclose (fp);
if (x509 == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Get public key - eay */
pkey=X509_get_pubkey(x509);
if (pkey == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Verify the signature */
if((fp = fopen(fichierfile, "r")) != NULL) /*on ouvre le fichier et verifie si on y arrive*/
{ while (!feof(fp))
fread(&szBuffer, sizeof(szBuffer),1, fp);
EVP_VerifyInit (&md_ctx, EVP_sha1());
n = strlen(szBuffer) ;
printf("la valeur de n: %u \n ", n);
EVP_VerifyUpdate (&md_ctx,szBuffer,n );
} fclose (fp);
err = EVP_VerifyFinal (&md_ctx, sig_buf, sig_len, pkey);
EVP_PKEY_free (pkey);
if (err != 1) {
ERR_print_errors_fp (stderr);
exit (1); }
printf("la vérification donne : %s \n ", sig_buf);
printf("la valeur finale de sig_buf : %s \n ", sig_buf);
printf ("Signature Verified Ok. \n");
printf ("la valeur de err : %d \n ", err);
return(0); }
Voilà, si quelqu'un peut m'aider, vraiment c'est très important et urgent :( Merci.
dimanche 27 octobre 2002 à 16:02:29 | Re : Programmation c

Bricomix

Ici c'est pour VB, et pis en plus, j'y connais rien au C !!!

Bricomix

-------------------------------
Réponse au message :
-------------------------------

Je travaille sous linux, avec la programmation c.
Voilà, j'ai un programme de signature numérique qui entre un fichier en lecture afin de le signer. Mais, j'ai remarqué que même si je fais entrer un fichier vide j'ai comme même la signature, sinon si je fais un mv fichier_initiale fichier_nouveau pour changer son contenu celà engendre un problème au niveau du terminal (bash ilisible).
Ici le code :
#include <stdio.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/objects.h>
#include <openssl/x509.h>
#include <openssl/err.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <string.h>
int main ()
{
int err;
int sig_len;
unsigned char sig_buf [4096];
static char certfile[] = "cert.pem";
static char keyfile[] = "key.pem";
static char fichierfile[] = "ter" ;
EVP_MD_CTX md_ctx;
EVP_PKEY * pkey;
FILE * fp;
X509 * x509;
char szBuffer[1024];
unsigned int n;
/* Just load the crypto library error strings,
* SSL_load_error_strings() loads the crypto AND the SSL ones */
/* SSL_load_error_strings();*/
ERR_load_crypto_strings();
/* Read private key */
fp = fopen (keyfile, "r");
if (fp == NULL) exit (1);
pkey = PEM_read_PrivateKey(fp, NULL, 0, NULL);
fclose (fp);
if (pkey == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Do the signature */
if((fp = fopen(fichierfile, "r")) != NULL) /*on ouvre le fichier et verifie si on y arrive*/
{ while (!feof(fp)) {
fread(&szBuffer, sizeof(szBuffer),1, fp); /*on range les caractere dans le buffer */
if(szBuffer == '\0') //si c'est la fin de la ligne
printf("\n"); //on "affiche" un saut de ligne
printf("%s",szBuffer); /*on affiche ce que contient le buffer */ } }
EVP_SignInit (&md_ctx, EVP_sha1());
n = strlen(szBuffer) ;
printf("la valeur de n: %u \n ", n);
EVP_SignUpdate (&md_ctx, szBuffer, n);
sig_len = sizeof(sig_buf);
err = EVP_SignFinal (&md_ctx, sig_buf, &sig_len, pkey);
fclose(fp);
printf("la signature est: %s \n ", sig_buf);
if (err != 1) {
ERR_print_errors_fp(stderr);
exit (1); }
EVP_PKEY_free (pkey);
/* Read public key */
fp = fopen (certfile, "r");
if (fp == NULL) exit (1);
x509 = PEM_read_X509(fp, NULL, 0, NULL);
fclose (fp);
if (x509 == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Get public key - eay */
pkey=X509_get_pubkey(x509);
if (pkey == NULL) {
ERR_print_errors_fp (stderr);
exit (1); }
/* Verify the signature */
if((fp = fopen(fichierfile, "r")) != NULL) /*on ouvre le fichier et verifie si on y arrive*/
{ while (!feof(fp))
fread(&szBuffer, sizeof(szBuffer),1, fp);
EVP_VerifyInit (&md_ctx, EVP_sha1());
n = strlen(szBuffer) ;
printf("la valeur de n: %u \n ", n);
EVP_VerifyUpdate (&md_ctx,szBuffer,n );
} fclose (fp);
err = EVP_VerifyFinal (&md_ctx, sig_buf, sig_len, pkey);
EVP_PKEY_free (pkey);
if (err != 1) {
ERR_print_errors_fp (stderr);
exit (1); }
printf("la vérification donne : %s \n ", sig_buf);
printf("la valeur finale de sig_buf : %s \n ", sig_buf);
printf ("Signature Verified Ok. \n");
printf ("la valeur de err : %d \n ", err);
return(0); }
Voilà, si quelqu'un peut m'aider, vraiment c'est très important et urgent :( Merci.


Cette discussion est classée dans : err, fp, sig, evp, pkey


Répondre à ce message

Sujets en rapport avec ce message

ERR 713 / CLASSE NON ENREGISTREE??? [ par ceyquem ] "713 : La classe n'est pas enregistrée. Recherche d'un objet avec CLSID:{00000010-0000-0010-8000-00AA006D2EA4}Une erreur interne est survenue, vous po Liste des erreurs [ par kenny ] Où puis-je trouver la liste complète des erreurs VB (err.number et err.description) ? Null ??? [ par joul ] Bonjour,Comment savoir si un objet est null ou pas. J'ai essayé avec VarType ou IsNull mais ca ne me convient pas.Ex : Dim dbBase as DataBaseon erro aide sur une gestion d'erreurs ???? [ par m.bazier ] J'ai posé plusieurs fois la question sur le forum, mais je n'ai eu aucune réponse. Pourtant le problème parait simple, pour un non initié ?????Voila, envoie de fichier et reception de fichier [ par Frank19 ] Bonjour ! comment on fait pour envoyer un fichier et recevoir un fichier avec des Winsock ?!?!Voici le code que jai mis pour envoyer un fichier ... ma Paramétrage des msgbox, Err.Description et utilitaire désintall selon langue [ par olive66 ] Pour un soft multilangue, est il envisageable de parametrer la langue des erreurs levées (Err.descritions), des msgbox (pour le nom des boutons affich Probleme de connection avec Mysql err 10061. [ par Philipina ] Salut,J'essai de faire une connection vers MySQL. les drivers sont bien configurés, mes déclarations sont bonnes; mais j'ai un message d'erreur quand Help me please !!!!!!!!!!!! [ par nassben ] Dim Fichier as integerFichier = "06_fichier.csv" ChDir "C:\WINDOWS\sigal" Call Shell("c:\windows\sig\recup.bat", vbHide) ChDir "C:\WINDOWS\si Code macro [ par Enaira ] Salut !hé oui, encore une débutante qui s'amuse à convertir des macros en VBA !!!Quelqu'un pourrait m'expliquer ce code ? (surtout les chiffres !)Merc Problème de syntaxe sur UPDATE (err 3144) [ par titi18 ] Bonjour!Voilà j'ai un gros problème sur lequel je coince: j'ai sans arret une erreur de syntaxe pour l'instruction suivante:maBase.Execute "UPDATE Rep


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales