Lines 513-519
Link Here
|
513 |
GetCipher(self, ctx); |
513 |
GetCipher(self, ctx); |
514 |
|
514 |
|
515 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
515 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
|
|
516 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
517 |
if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) |
518 |
#else |
516 |
if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) |
519 |
if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) |
|
|
520 |
#endif |
517 |
iv_len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx); |
521 |
iv_len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx); |
518 |
#endif |
522 |
#endif |
519 |
if (!iv_len) |
523 |
if (!iv_len) |
Lines 542-548
Link Here
|
542 |
GetCipher(self, ctx); |
546 |
GetCipher(self, ctx); |
543 |
|
547 |
|
544 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
548 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
|
|
549 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
550 |
return (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse; |
551 |
#else |
545 |
return (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse; |
552 |
return (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) ? Qtrue : Qfalse; |
|
|
553 |
#endif |
546 |
#else |
554 |
#else |
547 |
return Qfalse; |
555 |
return Qfalse; |
548 |
#endif |
556 |
#endif |
Lines 617-623
Link Here
|
617 |
|
625 |
|
618 |
GetCipher(self, ctx); |
626 |
GetCipher(self, ctx); |
619 |
|
627 |
|
|
|
628 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
629 |
if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
630 |
#else |
620 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
631 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
|
|
632 |
#endif |
621 |
ossl_raise(eCipherError, "authentication tag not supported by this cipher"); |
633 |
ossl_raise(eCipherError, "authentication tag not supported by this cipher"); |
622 |
|
634 |
|
623 |
ret = rb_str_new(NULL, tag_len); |
635 |
ret = rb_str_new(NULL, tag_len); |
Lines 654-660
Link Here
|
654 |
tag_len = RSTRING_LENINT(vtag); |
666 |
tag_len = RSTRING_LENINT(vtag); |
655 |
|
667 |
|
656 |
GetCipher(self, ctx); |
668 |
GetCipher(self, ctx); |
|
|
669 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
670 |
if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
671 |
#else |
657 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
672 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
|
|
673 |
#endif |
658 |
ossl_raise(eCipherError, "authentication tag not supported by this cipher"); |
674 |
ossl_raise(eCipherError, "authentication tag not supported by this cipher"); |
659 |
|
675 |
|
660 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, tag)) |
676 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, tag)) |
Lines 681-687
Link Here
|
681 |
EVP_CIPHER_CTX *ctx; |
697 |
EVP_CIPHER_CTX *ctx; |
682 |
|
698 |
|
683 |
GetCipher(self, ctx); |
699 |
GetCipher(self, ctx); |
|
|
700 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
701 |
if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
702 |
#else |
684 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
703 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
|
|
704 |
#endif |
685 |
ossl_raise(eCipherError, "AEAD not supported by this cipher"); |
705 |
ossl_raise(eCipherError, "AEAD not supported by this cipher"); |
686 |
|
706 |
|
687 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, NULL)) |
707 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_TAG, tag_len, NULL)) |
Lines 708-714
Link Here
|
708 |
EVP_CIPHER_CTX *ctx; |
728 |
EVP_CIPHER_CTX *ctx; |
709 |
|
729 |
|
710 |
GetCipher(self, ctx); |
730 |
GetCipher(self, ctx); |
|
|
731 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
732 |
if (!(EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
733 |
#else |
711 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
734 |
if (!(EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER)) |
|
|
735 |
#endif |
712 |
ossl_raise(eCipherError, "cipher does not support AEAD"); |
736 |
ossl_raise(eCipherError, "cipher does not support AEAD"); |
713 |
|
737 |
|
714 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, len, NULL)) |
738 |
if (!EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_IVLEN, len, NULL)) |
Lines 807-813
Link Here
|
807 |
|
831 |
|
808 |
GetCipher(self, ctx); |
832 |
GetCipher(self, ctx); |
809 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
833 |
#if defined(HAVE_AUTHENTICATED_ENCRYPTION) |
|
|
834 |
#if !defined(LIBRESSL_VERSION_NUMBER) && (OPENSSL_VERSION_NUMBER >= 0x10100000L) |
835 |
if (EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(ctx)) & EVP_CIPH_FLAG_AEAD_CIPHER) |
836 |
#else |
810 |
if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) |
837 |
if (EVP_CIPHER_CTX_flags(ctx) & EVP_CIPH_FLAG_AEAD_CIPHER) |
|
|
838 |
#endif |
811 |
len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx); |
839 |
len = (int)(VALUE)EVP_CIPHER_CTX_get_app_data(ctx); |
812 |
#endif |
840 |
#endif |
813 |
if (!len) |
841 |
if (!len) |