Project

General

Profile

Feature #2022 » 0002-Fix-some-various-OpenSSL-compilation-and-runtime-war.patch

hongli (Hongli Lai), 01/05/2010 07:05 PM

View differences:

ext/openssl/ossl_asn1.c
* DER to Ruby converters
*/
static VALUE
decode_bool(unsigned char* der, int length)
decode_bool(OSSL_MORE_CONST unsigned char* der, int length)
{
int bool;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
p = der;
if((bool = d2i_ASN1_BOOLEAN(NULL, &p, length)) < 0)
......
}
static VALUE
decode_int(unsigned char* der, int length)
decode_int(OSSL_MORE_CONST unsigned char* der, int length)
{
ASN1_INTEGER *ai;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
VALUE ret;
int status = 0;
......
}
static VALUE
decode_bstr(unsigned char* der, int length, long *unused_bits)
decode_bstr(OSSL_MORE_CONST unsigned char* der, int length, long *unused_bits)
{
ASN1_BIT_STRING *bstr;
unsigned char *p, *buf;
OSSL_MORE_CONST unsigned char *p;
unsigned char *buf;
long len;
VALUE ret;
......
}
static VALUE
decode_enum(unsigned char* der, int length)
decode_enum(OSSL_MORE_CONST unsigned char* der, int length)
{
ASN1_ENUMERATED *ai;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
VALUE ret;
int status = 0;
......
}
static VALUE
decode_null(unsigned char* der, int length)
decode_null(OSSL_MORE_CONST unsigned char* der, int length)
{
ASN1_NULL *null;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
p = der;
if(!(null = d2i_ASN1_NULL(NULL, &p, length)))
......
}
static VALUE
decode_obj(unsigned char* der, int length)
decode_obj(OSSL_MORE_CONST unsigned char* der, int length)
{
ASN1_OBJECT *obj;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
VALUE ret;
int nid;
BIO *bio;
......
}
static VALUE
decode_time(unsigned char* der, int length)
decode_time(OSSL_MORE_CONST unsigned char* der, int length)
{
ASN1_TIME *time;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
VALUE ret;
int status = 0;
......
}
static VALUE
ossl_asn1_decode0(unsigned char **pp, long length, long *offset, long depth,
int once, int yield)
ossl_asn1_decode0(OSSL_MORE_CONST unsigned char **pp, long length,
long *offset, long depth, int once, int yield)
{
unsigned char *start, *p;
OSSL_MORE_CONST unsigned char *start, *p;
long len, off = *offset;
int hlen, tag, tc, j;
VALUE ary, asn1data, value, tag_class;
......
static VALUE
ossl_asn1_traverse(VALUE self, VALUE obj)
{
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
long offset = 0;
volatile VALUE tmp;
......
ossl_asn1_decode(VALUE self, VALUE obj)
{
VALUE ret, ary;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
long offset = 0;
volatile VALUE tmp;
......
ossl_asn1_decode_all(VALUE self, VALUE obj)
{
VALUE ret;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
long offset = 0;
volatile VALUE tmp;
ext/openssl/ossl_cipher.c
* We deprecated the arguments for this method, but we decided
* keeping this behaviour for backward compatibility.
*/
char *cname = rb_class2name(rb_obj_class(self));
const char *cname = rb_class2name(rb_obj_class(self));
rb_warn("argumtents for %s#encrypt and %s#decrypt were deprecated; "
"use %s#pkcs5_keyivgen to derive key and IV",
cname, cname, cname);
......
static VALUE
ossl_cipher_update_deprecated(VALUE self, VALUE data)
{
char *cname;
const char *cname;
cname = rb_class2name(rb_obj_class(self));
rb_warning("%s#<< is deprecated; use %s#update instead", cname, cname);
ext/openssl/ossl_ssl.c
}
chain = SSL_get_peer_cert_chain(ssl);
if(!chain) return Qnil;
num = sk_num(chain);
num = sk_x509_num(chain);
ary = rb_ary_new2(num);
for (i = 0; i < num; i++){
cert = (X509*)sk_value(chain, i);
cert = (X509*)sk_x509_value(chain, i);
rb_ary_push(ary, ossl_x509_new(cert));
}
ext/openssl/ossl_x509attr.c
{
VALUE oid, value;
X509_ATTRIBUTE *attr;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
GetX509Attr(self, attr);
if(rb_scan_args(argc, argv, "11", &oid, &value) == 1){
......
ossl_str_adjust(str, p);
}
else{
length = i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, NULL,
i2d_ASN1_TYPE, V_ASN1_SET, V_ASN1_UNIVERSAL, 0);
length = i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set,
(unsigned char **) NULL, i2d_ASN1_TYPE,
V_ASN1_SET, V_ASN1_UNIVERSAL, 0);
str = rb_str_new(0, length);
p = RSTRING_PTR(str);
i2d_ASN1_SET_OF_ASN1_TYPE(attr->value.set, &p,
ext/openssl/ossl_x509ext.c
#ifdef HAVE_X509V3_EXT_NCONF_NID
VALUE rconf;
CONF *conf;
ID i_config;
#else
static LHASH *empty_lhash;
#endif
......
rb_str_append(valstr, value);
GetX509ExtFactory(self, ctx);
#ifdef HAVE_X509V3_EXT_NCONF_NID
rconf = rb_iv_get(self, "@config");
i_config = rb_intern("@config");
if (rb_ivar_defined(self, i_config))
rconf = rb_ivar_get(self, i_config);
else
rconf = Qnil;
conf = NIL_P(rconf) ? NULL : GetConfigPtr(rconf);
ext = X509V3_EXT_nconf_nid(conf, ctx, nid, RSTRING_PTR(valstr));
#else
......
ossl_x509ext_initialize(int argc, VALUE *argv, VALUE self)
{
VALUE oid, value, critical;
unsigned char *p;
OSSL_MORE_CONST unsigned char *p;
X509_EXTENSION *ext;
GetX509Ext(self, ext);
(3-3/7)