diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-07-27 22:22:58 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-07-27 22:22:58 +0000 |
commit | 3e3d2ea2fc9e9b702f94d5870f1a0a2f0c4c59f5 (patch) | |
tree | a65eed742f24248a7f07d5c8fe40c4675a2ebfda /crypto/asn1/a_object.c | |
parent | 770d19b862113f075a66a188a7be56f4b1f56251 (diff) | |
download | openssl-3e3d2ea2fc9e9b702f94d5870f1a0a2f0c4c59f5.tar.gz |
New function OBJ_obj2txt()
Diffstat (limited to 'crypto/asn1/a_object.c')
-rw-r--r-- | crypto/asn1/a_object.c | 74 |
1 files changed, 3 insertions, 71 deletions
diff --git a/crypto/asn1/a_object.c b/crypto/asn1/a_object.c index 3a8ae0305d..b94b418ee8 100644 --- a/crypto/asn1/a_object.c +++ b/crypto/asn1/a_object.c @@ -171,77 +171,9 @@ err: } int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a) - { - int i,idx=0,n=0,len,nid; - unsigned long l; - unsigned char *p; - const char *s; - char tbuf[32]; - - if (buf_len <= 0) return(0); - - if ((a == NULL) || (a->data == NULL)) - { - buf[0]='\0'; - return(0); - } - - nid=OBJ_obj2nid(a); - if (nid == NID_undef) - { - len=a->length; - p=a->data; - - idx=0; - l=0; - while (idx < a->length) - { - l|=(p[idx]&0x7f); - if (!(p[idx] & 0x80)) break; - l<<=7L; - idx++; - } - idx++; - i=(int)(l/40); - if (i > 2) i=2; - l-=(long)(i*40); - - sprintf(tbuf,"%d.%lu",i,l); - i=strlen(tbuf); - strncpy(buf,tbuf,buf_len); - buf_len-=i; - buf+=i; - n+=i; - - l=0; - for (; idx<len; idx++) - { - l|=p[idx]&0x7f; - if (!(p[idx] & 0x80)) - { - sprintf(tbuf,".%lu",l); - i=strlen(tbuf); - if (buf_len > 0) - strncpy(buf,tbuf,buf_len); - buf_len-=i; - buf+=i; - n+=i; - l=0; - } - l<<=7L; - } - } - else - { - s=OBJ_nid2ln(nid); - if (s == NULL) - s=OBJ_nid2sn(nid); - strncpy(buf,s,buf_len); - n=strlen(s); - } - buf[buf_len-1]='\0'; - return(n); - } +{ + return OBJ_obj2txt(buf, buf_len, a, 0); +} int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a) { |