| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* v3_ia5.c */ |  | 
| 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |  | 
| 3  * project 1999. |  | 
| 4  */ |  | 
| 5 /* ==================================================================== |  | 
| 6  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved. |  | 
| 7  * |  | 
| 8  * Redistribution and use in source and binary forms, with or without |  | 
| 9  * modification, are permitted provided that the following conditions |  | 
| 10  * are met: |  | 
| 11  * |  | 
| 12  * 1. Redistributions of source code must retain the above copyright |  | 
| 13  *    notice, this list of conditions and the following disclaimer. |  | 
| 14  * |  | 
| 15  * 2. Redistributions in binary form must reproduce the above copyright |  | 
| 16  *    notice, this list of conditions and the following disclaimer in |  | 
| 17  *    the documentation and/or other materials provided with the |  | 
| 18  *    distribution. |  | 
| 19  * |  | 
| 20  * 3. All advertising materials mentioning features or use of this |  | 
| 21  *    software must display the following acknowledgment: |  | 
| 22  *    "This product includes software developed by the OpenSSL Project |  | 
| 23  *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" |  | 
| 24  * |  | 
| 25  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to |  | 
| 26  *    endorse or promote products derived from this software without |  | 
| 27  *    prior written permission. For written permission, please contact |  | 
| 28  *    licensing@OpenSSL.org. |  | 
| 29  * |  | 
| 30  * 5. Products derived from this software may not be called "OpenSSL" |  | 
| 31  *    nor may "OpenSSL" appear in their names without prior written |  | 
| 32  *    permission of the OpenSSL Project. |  | 
| 33  * |  | 
| 34  * 6. Redistributions of any form whatsoever must retain the following |  | 
| 35  *    acknowledgment: |  | 
| 36  *    "This product includes software developed by the OpenSSL Project |  | 
| 37  *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" |  | 
| 38  * |  | 
| 39  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY |  | 
| 40  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  | 
| 41  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |  | 
| 42  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR |  | 
| 43  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | 
| 44  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |  | 
| 45  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |  | 
| 46  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |  | 
| 47  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |  | 
| 48  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |  | 
| 49  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |  | 
| 50  * OF THE POSSIBILITY OF SUCH DAMAGE. |  | 
| 51  * ==================================================================== |  | 
| 52  * |  | 
| 53  * This product includes cryptographic software written by Eric Young |  | 
| 54  * (eay@cryptsoft.com).  This product includes software written by Tim |  | 
| 55  * Hudson (tjh@cryptsoft.com). |  | 
| 56  * |  | 
| 57  */ |  | 
| 58 |  | 
| 59 |  | 
| 60 #include <stdio.h> |  | 
| 61 #include "cryptlib.h" |  | 
| 62 #include <openssl/asn1.h> |  | 
| 63 #include <openssl/conf.h> |  | 
| 64 #include <openssl/x509v3.h> |  | 
| 65 |  | 
| 66 static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); |  | 
| 67 static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, X509V3_CTX 
     *ctx, char *str); |  | 
| 68 const X509V3_EXT_METHOD v3_ns_ia5_list[] = { |  | 
| 69 EXT_IA5STRING(NID_netscape_base_url), |  | 
| 70 EXT_IA5STRING(NID_netscape_revocation_url), |  | 
| 71 EXT_IA5STRING(NID_netscape_ca_revocation_url), |  | 
| 72 EXT_IA5STRING(NID_netscape_renewal_url), |  | 
| 73 EXT_IA5STRING(NID_netscape_ca_policy_url), |  | 
| 74 EXT_IA5STRING(NID_netscape_ssl_server_name), |  | 
| 75 EXT_IA5STRING(NID_netscape_comment), |  | 
| 76 EXT_END |  | 
| 77 }; |  | 
| 78 |  | 
| 79 |  | 
| 80 static char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, |  | 
| 81              ASN1_IA5STRING *ia5) |  | 
| 82 { |  | 
| 83         char *tmp; |  | 
| 84         if(!ia5 || !ia5->length) return NULL; |  | 
| 85         if(!(tmp = OPENSSL_malloc(ia5->length + 1))) { |  | 
| 86                 X509V3err(X509V3_F_I2S_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); |  | 
| 87                 return NULL; |  | 
| 88         } |  | 
| 89         memcpy(tmp, ia5->data, ia5->length); |  | 
| 90         tmp[ia5->length] = 0; |  | 
| 91         return tmp; |  | 
| 92 } |  | 
| 93 |  | 
| 94 static ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, |  | 
| 95              X509V3_CTX *ctx, char *str) |  | 
| 96 { |  | 
| 97         ASN1_IA5STRING *ia5; |  | 
| 98         if(!str) { |  | 
| 99                 X509V3err(X509V3_F_S2I_ASN1_IA5STRING,X509V3_R_INVALID_NULL_ARGU
     MENT); |  | 
| 100                 return NULL; |  | 
| 101         } |  | 
| 102         if(!(ia5 = M_ASN1_IA5STRING_new())) goto err; |  | 
| 103         if(!ASN1_STRING_set((ASN1_STRING *)ia5, (unsigned char*)str, |  | 
| 104                             strlen(str))) { |  | 
| 105                 M_ASN1_IA5STRING_free(ia5); |  | 
| 106                 goto err; |  | 
| 107         } |  | 
| 108 #ifdef CHARSET_EBCDIC |  | 
| 109         ebcdic2ascii(ia5->data, ia5->data, ia5->length); |  | 
| 110 #endif /*CHARSET_EBCDIC*/ |  | 
| 111         return ia5; |  | 
| 112         err: |  | 
| 113         X509V3err(X509V3_F_S2I_ASN1_IA5STRING,ERR_R_MALLOC_FAILURE); |  | 
| 114         return NULL; |  | 
| 115 } |  | 
| 116 |  | 
| OLD | NEW | 
|---|