On 2014/04/15 14:19, Miod Vallat wrote: > CVSROOT: /cvs > Module name: src > Changes by: m...@cvs.openbsd.org 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); }