003 File Manager
Current Path:
/usr/src/crypto/openssl/crypto/asn1
usr
/
src
/
crypto
/
openssl
/
crypto
/
asn1
/
📁
..
📄
a_bitstr.c
(5.34 KB)
📄
a_d2i_fp.c
(6.33 KB)
📄
a_digest.c
(1.52 KB)
📄
a_dup.c
(1.51 KB)
📄
a_gentm.c
(2.12 KB)
📄
a_i2d_fp.c
(2.25 KB)
📄
a_int.c
(16.55 KB)
📄
a_mbstr.c
(9.55 KB)
📄
a_object.c
(10.16 KB)
📄
a_octet.c
(813 B)
📄
a_print.c
(2.14 KB)
📄
a_sign.c
(7.08 KB)
📄
a_strex.c
(17.37 KB)
📄
a_strnid.c
(5.95 KB)
📄
a_time.c
(14.91 KB)
📄
a_type.c
(3.51 KB)
📄
a_utctm.c
(2.23 KB)
📄
a_utf8.c
(5.89 KB)
📄
a_verify.c
(4.92 KB)
📄
ameth_lib.c
(14.51 KB)
📄
asn1_err.c
(18.92 KB)
📄
asn1_gen.c
(22.63 KB)
📄
asn1_item_list.c
(1.06 KB)
📄
asn1_item_list.h
(5.5 KB)
📄
asn1_lib.c
(9.38 KB)
📄
asn1_local.h
(3.27 KB)
📄
asn1_par.c
(13 KB)
📄
asn_mime.c
(27.92 KB)
📄
asn_moid.c
(2.46 KB)
📄
asn_mstbl.c
(3.43 KB)
📄
asn_pack.c
(1.59 KB)
📄
bio_asn1.c
(11.09 KB)
📄
bio_ndef.c
(5.29 KB)
📄
build.info
(837 B)
📄
charmap.h
(1.41 KB)
📄
charmap.pl
(3.58 KB)
📄
d2i_pr.c
(3.64 KB)
📄
d2i_pu.c
(2.01 KB)
📄
evp_asn1.c
(2.89 KB)
📄
f_int.c
(3.94 KB)
📄
f_string.c
(3.44 KB)
📄
i2d_pr.c
(1006 B)
📄
i2d_pu.c
(1.05 KB)
📄
n_pkey.c
(1.89 KB)
📄
nsseq.c
(1.11 KB)
📄
p5_pbe.c
(2.52 KB)
📄
p5_pbev2.c
(6 KB)
📄
p5_scrypt.c
(7.76 KB)
📄
p8_pkey.c
(2.53 KB)
📄
standard_methods.h
(1.35 KB)
📄
t_bitst.c
(1.56 KB)
📄
t_pkey.c
(2.52 KB)
📄
t_spki.c
(1.75 KB)
📄
tasn_dec.c
(36.99 KB)
📄
tasn_enc.c
(18.86 KB)
📄
tasn_fre.c
(5.34 KB)
📄
tasn_new.c
(8.95 KB)
📄
tasn_prn.c
(14.63 KB)
📄
tasn_scn.c
(1.37 KB)
📄
tasn_typ.c
(2.94 KB)
📄
tasn_utl.c
(6.64 KB)
📄
tbl_standard.h
(2.7 KB)
📄
x_algor.c
(3.31 KB)
📄
x_bignum.c
(4.05 KB)
📄
x_info.c
(895 B)
📄
x_int64.c
(7.83 KB)
📄
x_long.c
(5.42 KB)
📄
x_pkey.c
(1.12 KB)
📄
x_sig.c
(1.05 KB)
📄
x_spki.c
(961 B)
📄
x_val.c
(636 B)
Editing: f_string.c
/* * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ #include <stdio.h> #include "crypto/ctype.h" #include "internal/cryptlib.h" #include <openssl/buffer.h> #include <openssl/asn1.h> int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type) { int i, n = 0; static const char *h = "0123456789ABCDEF"; char buf[2]; if (a == NULL) return 0; if (a->length == 0) { if (BIO_write(bp, "0", 1) != 1) goto err; n = 1; } else { for (i = 0; i < a->length; i++) { if ((i != 0) && (i % 35 == 0)) { if (BIO_write(bp, "\\\n", 2) != 2) goto err; n += 2; } buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f]; buf[1] = h[((unsigned char)a->data[i]) & 0x0f]; if (BIO_write(bp, buf, 2) != 2) goto err; n += 2; } } return n; err: return -1; } int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) { int i, j, k, m, n, again, bufsize; unsigned char *s = NULL, *sp; unsigned char *bufp; int num = 0, slen = 0, first = 1; bufsize = BIO_gets(bp, buf, size); for (;;) { if (bufsize < 1) { if (first) break; else goto err; } first = 0; i = bufsize; if (buf[i - 1] == '\n') buf[--i] = '\0'; if (i == 0) goto err; if (buf[i - 1] == '\r') buf[--i] = '\0'; if (i == 0) goto err; again = (buf[i - 1] == '\\'); for (j = i - 1; j > 0; j--) { if (!ossl_isxdigit(buf[j])) { i = j; break; } } buf[i] = '\0'; /* * We have now cleared all the crap off the end of the line */ if (i < 2) goto err; bufp = (unsigned char *)buf; k = 0; i -= again; if (i % 2 != 0) { ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_ODD_NUMBER_OF_CHARS); OPENSSL_free(s); return 0; } i /= 2; if (num + i > slen) { sp = OPENSSL_realloc(s, (unsigned int)num + i * 2); if (sp == NULL) { ASN1err(ASN1_F_A2I_ASN1_STRING, ERR_R_MALLOC_FAILURE); OPENSSL_free(s); return 0; } s = sp; slen = num + i * 2; } for (j = 0; j < i; j++, k += 2) { for (n = 0; n < 2; n++) { m = OPENSSL_hexchar2int(bufp[k + n]); if (m < 0) { ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_NON_HEX_CHARACTERS); OPENSSL_free(s); return 0; } s[num + j] <<= 4; s[num + j] |= m; } } num += i; if (again) bufsize = BIO_gets(bp, buf, size); else break; } bs->length = num; bs->data = s; return 1; err: ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_SHORT_LINE); OPENSSL_free(s); return 0; }
Upload File
Create Folder