Projet

Général

Profil

lasso-2.5.0-fix-sha256.patch

Brett Gardner, 18 février 2016 05:43

Télécharger (3,12 ko)

Voir les différences:


  

lasso-2.5.0/lasso/xml/tools.c 2016-02-18 15:32:40.000000000 +1100
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));