On 2014/04/15 14:19, Miod Vallat wrote:
> CVSROOT: /cvs
> Module name: src
> Changes by: [email protected] 2014/04/15 14:19:57
>
> Modified files:
> lib/libcrypto/crypto: Makefile
> lib/libssl/src/crypto/asn1: a_digest.c a_sign.c a_verify.c
> asn1.h asn1_mac.h asn_pack.c
> lib/libssl/src/crypto/stack: safestack.h
> lib/libssl/src/crypto/x509: x509.h
> lib/libssl/src/util: mkstack.pl
> Removed files:
> lib/libssl/src/crypto/asn1: a_set.c
>
> Log message:
> The NO_ASN1_OLD define was introduced in 0.9.7, 8 years ago, to allow for
> obsolete (and mostly internal) routines to be compiled out.
>
> We don't expect any reasonable software to stick to these interfaces, so
> better
> clean up the view and unifdef -DNO_ASN1_OLD.
>
> The astute reader will notice the existence of NO_OLD_ASN1 which serves a
> similar purpose, but is more entangled. Its time will come, soon.
>
The safestack.h part of this breaks bulding ruby in ossl_x509attr_get_value()
of ext/openssl/ossl_x509attr.c
-ossl_x509attr.c: In function 'ossl_x509attr_get_value':
-ossl_x509attr.c:220: error: expected expression before 'ASN1_TYPE'
-ossl_x509attr.c:225: error: expected expression before 'ASN1_TYPE'
Diff of preprocessor output looks like this:
@@ -11422,12 +11375,12 @@ ossl_x509attr_get_value(VALUE self)
do{ int len = (((struct RString*)(str))->len); int newlen = (p) - (unsigned
char*)(((struct RString*)(str))->ptr); ((newlen <= len) ? (void)0 :
__assert2("ossl_x509attr.c", 217, __func__, "newlen <= len")); rb_str_set_len(st
r, newlen);}while(0);
}
else{
- length = i2d_ASN1_SET((struct stack_st_OPENSSL_BLOCK *)((_STACK*) (1 ?
(attr->value.set) : (struct stack_st_ASN1_TYPE*)0)), ((unsigned char **) ((void
*)0)), ((i2d_of_void*) (1 ? (i2d_ASN1_TYPE) : ((int (*)(ASN1_TYPE *,unsigned
char **))0))), (17), (0x00), (0));
+ length = SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (attr->value.set), ((unsigned char
**) ((void *)0)), (i2d_ASN1_TYPE), (17), (0x00), (0));
str = rb_str_new(0, length);
p = (((struct RString*)(str))->ptr);
- i2d_ASN1_SET((struct stack_st_OPENSSL_BLOCK *)((_STACK*) (1 ?
(attr->value.set) : (struct stack_st_ASN1_TYPE*)0)), (&p), ((i2d_of_void*) (1 ?
(i2d_ASN1_TYPE) : ((int (*)(ASN1_TYPE *,unsigned char **))0))), (17), (0x00),
(0));
+ SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (attr->value.set), (&p), (i2d_ASN1_TYPE),
(17), (0x00), (0));
do{ int len = (((struct RString*)(str))->len); int newlen = (p) - (unsigned
char*)(((struct RString*)(str))->ptr); ((newlen <= len) ? (void)0 :
__assert2("ossl_x509attr.c", 227, __func__, "newlen <= len"));
rb_str_set_len(str, newlen);}while(0);
}