Projet

Général

Profil

openssl-1_0.diff

Maxime Besson, 01 mars 2023 18:03

Télécharger (3,07 ko)

Voir les différences:


  

lasso/xml/tools.c
619 619
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignInit failed");
620 620
				goto done;
621 621
			}
622
			if (EVP_DigestSign(evp_md_ctx, NULL, &siglen, (unsigned char*)new_query, strlen(new_query)) <= 0) {
623
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSign failed");
622
			if (EVP_DigestSignUpdate( evp_md_ctx, new_query, strlen(new_query)) <= 0) {
623
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignUpdate failed");
624
				goto done;
625
			}
626
			if (EVP_DigestSignFinal(evp_md_ctx, NULL, &siglen) <= 0) {
627
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignFinal failed");
624 628
				goto done;
625 629
			}
626 630
			sigret = g_malloc(siglen);
627
			if (EVP_DigestSign(evp_md_ctx, sigret, &siglen, (unsigned char*)new_query, strlen(new_query)) <= 0) {
628
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSign failed");
631
			if (EVP_DigestSignFinal(evp_md_ctx, sigret, &siglen) <= 0) {
632
				message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignFinal failed");
629 633
				goto done;
630 634
			}
631 635
			status = 1;
......
671 675
	lasso_release_xml_string(b64_sigret);
672 676
	lasso_release_xml_string(e_b64_sigret);
673 677
	if (evp_md_ctx) {
674
		EVP_MD_CTX_free(evp_md_ctx);
678
		EVP_MD_CTX_destroy(evp_md_ctx);
675 679
		evp_md_ctx = NULL;
676 680
	}
677 681
	if (hmac_pkey) {
......
845 849
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignInit failed");
846 850
					goto_cleanup_with_rc(LASSO_DS_ERROR_INVALID_SIGNATURE);
847 851
				}
848
				if (EVP_DigestSign(evp_md_ctx, NULL, &new_signature_len, (unsigned char*)signed_content, strlen(signed_content)) != 1) {
849
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSign failed");
852
				if (EVP_DigestSignUpdate(evp_md_ctx, signed_content, strlen(signed_content)) != 1) {
853
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignUpdate failed");
854
					goto_cleanup_with_rc(LASSO_DS_ERROR_INVALID_SIGNATURE);
855
				}
856
				if (EVP_DigestSignFinal(evp_md_ctx, NULL, &new_signature_len) != 1) {
857
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignFinal failed");
850 858
					goto_cleanup_with_rc(LASSO_DS_ERROR_INVALID_SIGNATURE);
851 859
				}
852 860
				if (new_signature_len != signature_len) {
853 861
					goto_cleanup_with_rc(LASSO_DS_ERROR_INVALID_SIGNATURE);
854 862
				}
855 863
				new_signature = g_malloc(new_signature_len);
856
				if (EVP_DigestSign(evp_md_ctx, new_signature, &new_signature_len, (unsigned char*)signed_content, strlen(signed_content)) != 1) {
857
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSign failed");
864
				if (EVP_DigestSignFinal(evp_md_ctx, new_signature, &new_signature_len) != 1) {
865
					message(G_LOG_LEVEL_CRITICAL, "EVP_DigestSignFinal failed");
858 866
					goto_cleanup_with_rc(LASSO_DS_ERROR_INVALID_SIGNATURE);
859 867
				}
860 868
				if (CRYPTO_memcmp(signature, new_signature, signature_len) != 0) {
......
870 878
	lasso_release_string(digest);
871 879
	lasso_release_string(new_signature);
872 880
	if (evp_md_ctx) {
873
		EVP_MD_CTX_free(evp_md_ctx);
881
		EVP_MD_CTX_destroy(evp_md_ctx);
874 882
		evp_md_ctx = NULL;
875 883
	}
876 884
	if (hmac_pkey) {