Skip to content

Commit dcb05c4

Browse files
committed
ts: refactor converting string to ASN1_OBJECT
obj_to_asn1obj() in ossl_ts.c and ossl_asn1.c are identical. Let's remove one in ossl_ts.c. eASN1Error can now be made static to ossl_asn1.c.
1 parent 0aad4f8 commit dcb05c4

File tree

3 files changed

+13
-22
lines changed

3 files changed

+13
-22
lines changed

ext/openssl/ossl_asn1.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ asn1integer_to_num_i(VALUE arg)
160160
#define ossl_asn1_set_indefinite_length(o,v) rb_ivar_set((o),sivINDEFINITE_LENGTH,(v))
161161

162162
VALUE mASN1;
163-
VALUE eASN1Error;
163+
static VALUE eASN1Error;
164164

165165
VALUE cASN1Data;
166166
static VALUE cASN1Primitive;
@@ -247,8 +247,8 @@ obj_to_asn1null(VALUE obj)
247247
return null;
248248
}
249249

250-
static ASN1_OBJECT*
251-
obj_to_asn1obj(VALUE obj)
250+
ASN1_OBJECT *
251+
ossl_to_asn1obj(VALUE obj)
252252
{
253253
ASN1_OBJECT *a1obj;
254254

@@ -544,7 +544,7 @@ ossl_asn1_get_asn1type(VALUE obj)
544544
free_func = (free_func_type *)ASN1_STRING_free;
545545
break;
546546
case V_ASN1_OBJECT:
547-
ptr = obj_to_asn1obj(value);
547+
ptr = ossl_to_asn1obj(value);
548548
free_func = (free_func_type *)ASN1_OBJECT_free;
549549
break;
550550
case V_ASN1_UTCTIME:
@@ -1205,7 +1205,7 @@ ossl_asn1obj_get_oid(VALUE self)
12051205
ASN1_OBJECT *a1obj;
12061206
int state;
12071207

1208-
a1obj = obj_to_asn1obj(ossl_asn1_get_value(self));
1208+
a1obj = ossl_to_asn1obj(ossl_asn1_get_value(self));
12091209
str = rb_protect(asn1obj_get_oid_i, (VALUE)a1obj, &state);
12101210
ASN1_OBJECT_free(a1obj);
12111211
if (state)

ext/openssl/ossl_asn1.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,15 @@ VALUE asn1str_to_str(const ASN1_STRING *);
3131
VALUE asn1integer_to_num(const ASN1_INTEGER *);
3232
ASN1_INTEGER *num_to_asn1integer(VALUE, ASN1_INTEGER *);
3333

34+
/*
35+
* ASN1_OBJECT conversions
36+
*/
37+
ASN1_OBJECT *ossl_to_asn1obj(VALUE obj);
38+
3439
/*
3540
* ASN1 module
3641
*/
3742
extern VALUE mASN1;
38-
extern VALUE eASN1Error;
3943

4044
extern VALUE cASN1Data;
4145

ext/openssl/ossl_ts.c

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -132,23 +132,10 @@ asn1_to_der(void *template, int (*i2d)(void *template, unsigned char **pp))
132132
return str;
133133
}
134134

135-
static ASN1_OBJECT*
136-
obj_to_asn1obj(VALUE obj)
137-
{
138-
ASN1_OBJECT *a1obj;
139-
140-
StringValue(obj);
141-
a1obj = OBJ_txt2obj(RSTRING_PTR(obj), 0);
142-
if(!a1obj) a1obj = OBJ_txt2obj(RSTRING_PTR(obj), 1);
143-
if(!a1obj) ossl_raise(eASN1Error, "invalid OBJECT ID");
144-
145-
return a1obj;
146-
}
147-
148135
static VALUE
149136
obj_to_asn1obj_i(VALUE obj)
150137
{
151-
return (VALUE)obj_to_asn1obj(obj);
138+
return (VALUE)ossl_to_asn1obj(obj);
152139
}
153140

154141
static VALUE
@@ -264,7 +251,7 @@ ossl_ts_req_set_algorithm(VALUE self, VALUE algo)
264251
X509_ALGOR *algor;
265252

266253
GetTSRequest(self, req);
267-
obj = obj_to_asn1obj(algo);
254+
obj = ossl_to_asn1obj(algo);
268255
mi = TS_REQ_get_msg_imprint(req);
269256
algor = TS_MSG_IMPRINT_get_algo(mi);
270257
if (!X509_ALGOR_set0(algor, obj, V_ASN1_NULL, NULL)) {
@@ -394,7 +381,7 @@ ossl_ts_req_set_policy_id(VALUE self, VALUE oid)
394381
int ok;
395382

396383
GetTSRequest(self, req);
397-
obj = obj_to_asn1obj(oid);
384+
obj = ossl_to_asn1obj(oid);
398385
ok = TS_REQ_set_policy_id(req, obj);
399386
ASN1_OBJECT_free(obj);
400387
if (!ok)

0 commit comments

Comments
 (0)