616 |
616 |
|
617 |
617 |
switch (sign_method) {
|
618 |
618 |
case LASSO_SIGNATURE_METHOD_RSA_SHA1:
|
|
619 |
/* sign digest message */
|
|
620 |
status = RSA_sign(NID_sha1, (unsigned char*)digest, SHA_DIGEST_LENGTH, sigret,
|
|
621 |
&siglen, rsa);
|
|
622 |
break;
|
619 |
623 |
case LASSO_SIGNATURE_METHOD_RSA_SHA256:
|
|
624 |
/* sign digest message */
|
|
625 |
status = RSA_sign(NID_sha256, (unsigned char*)digest, SHA256_DIGEST_LENGTH, sigret,
|
|
626 |
&siglen, rsa);
|
|
627 |
break;
|
620 |
628 |
case LASSO_SIGNATURE_METHOD_RSA_SHA384:
|
|
629 |
/* sign digest message */
|
|
630 |
status = RSA_sign(NID_sha384, (unsigned char*)digest, SHA384_DIGEST_LENGTH, sigret,
|
|
631 |
&siglen, rsa);
|
|
632 |
break;
|
621 |
633 |
case LASSO_SIGNATURE_METHOD_RSA_SHA512:
|
622 |
634 |
/* sign digest message */
|
623 |
|
status = RSA_sign(NID_sha1, (unsigned char*)digest, 20, sigret,
|
|
635 |
status = RSA_sign(NID_sha512, (unsigned char*)digest, SHA512_DIGEST_LENGTH, sigret,
|
624 |
636 |
&siglen, rsa);
|
625 |
637 |
break;
|
626 |
638 |
case LASSO_SIGNATURE_METHOD_DSA_SHA1:
|
627 |
|
status = DSA_sign(NID_sha1, (unsigned char*)digest, 20, sigret,
|
|
639 |
status = DSA_sign(NID_sha1, (unsigned char*)digest, SHA_DIGEST_LENGTH, sigret,
|
628 |
640 |
&siglen, dsa);
|
629 |
641 |
break;
|
630 |
642 |
case LASSO_SIGNATURE_METHOD_HMAC_SHA1:
|
... | ... | |
723 |
735 |
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(key->value);
|
724 |
736 |
key_size = RSA_size(rsa);
|
725 |
737 |
method = LASSO_SIGNATURE_METHOD_RSA_SHA1;
|
726 |
|
digest_size = 20;
|
|
738 |
digest_size = SHA_DIGEST_LENGTH;
|
727 |
739 |
type = NID_sha1;
|
728 |
740 |
} else if (lasso_strisequal(algorithm, (char*)xmlSecHrefDsaSha1)) {
|
729 |
741 |
goto_cleanup_if_fail_with_rc(key->value->id == xmlSecOpenSSLKeyDataDsaId, LASSO_DS_ERROR_INVALID_SIGALG);
|
730 |
742 |
dsa = xmlSecOpenSSLKeyDataDsaGetDsa(key->value);
|
731 |
743 |
key_size = DSA_size(dsa);
|
732 |
744 |
method = LASSO_SIGNATURE_METHOD_DSA_SHA1;
|
733 |
|
digest_size = 20;
|
|
745 |
digest_size = SHA_DIGEST_LENGTH;
|
734 |
746 |
type = NID_sha1;
|
735 |
747 |
} else if (lasso_strisequal(algorithm, (char*)xmlSecHrefRsaSha256)) {
|
736 |
748 |
goto_cleanup_if_fail_with_rc(key->value->id == xmlSecOpenSSLKeyDataRsaId,
|
... | ... | |
738 |
750 |
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(key->value);
|
739 |
751 |
key_size = RSA_size(rsa);
|
740 |
752 |
method = LASSO_SIGNATURE_METHOD_RSA_SHA256;
|
741 |
|
digest_size = 32;
|
|
753 |
digest_size = SHA256_DIGEST_LENGTH;
|
742 |
754 |
type = NID_sha256;
|
743 |
755 |
} else if (lasso_strisequal(algorithm, (char*)xmlSecHrefRsaSha384)) {
|
744 |
756 |
goto_cleanup_if_fail_with_rc(key->value->id == xmlSecOpenSSLKeyDataRsaId,
|
... | ... | |
746 |
758 |
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(key->value);
|
747 |
759 |
key_size = RSA_size(rsa);
|
748 |
760 |
method = LASSO_SIGNATURE_METHOD_RSA_SHA384;
|
749 |
|
digest_size = 48;
|
|
761 |
digest_size = SHA384_DIGEST_LENGTH;
|
750 |
762 |
type = NID_sha384;
|
751 |
763 |
} else if (lasso_strisequal(algorithm, (char*)xmlSecHrefRsaSha512)) {
|
752 |
764 |
goto_cleanup_if_fail_with_rc(key->value->id == xmlSecOpenSSLKeyDataRsaId,
|
... | ... | |
754 |
766 |
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(key->value);
|
755 |
767 |
key_size = RSA_size(rsa);
|
756 |
768 |
method = LASSO_SIGNATURE_METHOD_RSA_SHA512;
|
757 |
|
digest_size = 64;
|
|
769 |
digest_size = SHA512_DIGEST_LENGTH;
|
758 |
770 |
type = NID_sha512;
|
759 |
771 |
} else if (lasso_strisequal(algorithm, (char*)xmlSecHrefHmacSha1)) {
|
760 |
772 |
lasso_check_good_rc(lasso_get_hmac_key(key, (void**)&hmac_key, &hmac_key_length));
|