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) {
|