Back to index

lightning-sunbird  0.9+nobinonly
certdecode.c
Go to the documentation of this file.
00001 /* ***** BEGIN LICENSE BLOCK *****
00002  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00003  *
00004  * The contents of this file are subject to the Mozilla Public License Version
00005  * 1.1 (the "License"); you may not use this file except in compliance with
00006  * the License. You may obtain a copy of the License at
00007  * http://www.mozilla.org/MPL/
00008  *
00009  * Software distributed under the License is distributed on an "AS IS" basis,
00010  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00011  * for the specific language governing rights and limitations under the
00012  * License.
00013  *
00014  * The Original Code is the Netscape security libraries.
00015  *
00016  * The Initial Developer of the Original Code is
00017  * Netscape Communications Corporation.
00018  * Portions created by the Initial Developer are Copyright (C) 1994-2000
00019  * the Initial Developer. All Rights Reserved.
00020  *
00021  * Contributor(s):
00022  *
00023  * Alternatively, the contents of this file may be used under the terms of
00024  * either the GNU General Public License Version 2 or later (the "GPL"), or
00025  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00026  * in which case the provisions of the GPL or the LGPL are applicable instead
00027  * of those above. If you wish to allow use of your version of this file only
00028  * under the terms of either the GPL or the LGPL, and not to allow others to
00029  * use your version of this file under the terms of the MPL, indicate your
00030  * decision by deleting the provisions above and replace them with the notice
00031  * and other provisions required by the GPL or the LGPL. If you do not delete
00032  * the provisions above, a recipient may use your version of this file under
00033  * the terms of any one of the MPL, the GPL or the LGPL.
00034  *
00035  * ***** END LICENSE BLOCK ***** */
00036 
00037 #ifdef DEBUG
00038 static const char CVS_ID[] = "@(#) $RCSfile: certdecode.c,v $ $Revision: 1.16.28.1 $ $Date: 2007/11/16 05:25:08 $";
00039 #endif /* DEBUG */
00040 
00041 #ifndef PKIT_H
00042 #include "pkit.h"
00043 #endif /* PKIT_H */
00044 
00045 #ifndef PKIM_H
00046 #include "pkim.h"
00047 #endif /* PKIM_H */
00048 
00049 /* This is defined in pki3hack.c */
00050 NSS_EXTERN nssDecodedCert *
00051 nssDecodedPKIXCertificate_Create (
00052   NSSArena *arenaOpt,
00053   NSSDER *encoding
00054 );
00055 
00056 NSS_IMPLEMENT PRStatus
00057 nssDecodedPKIXCertificate_Destroy (
00058   nssDecodedCert *dc
00059 );
00060 
00061 NSS_IMPLEMENT nssDecodedCert *
00062 nssDecodedCert_Create (
00063   NSSArena *arenaOpt,
00064   NSSDER *encoding,
00065   NSSCertificateType type
00066 )
00067 {
00068     nssDecodedCert *rvDC = NULL;
00069     switch(type) {
00070     case NSSCertificateType_PKIX:
00071        rvDC = nssDecodedPKIXCertificate_Create(arenaOpt, encoding);
00072        break;
00073     default:
00074 #if 0
00075        nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
00076 #endif
00077        return (nssDecodedCert *)NULL;
00078     }
00079     return rvDC;
00080 }
00081 
00082 NSS_IMPLEMENT PRStatus
00083 nssDecodedCert_Destroy (
00084   nssDecodedCert *dc
00085 )
00086 {
00087     if (!dc) {
00088        return PR_FAILURE;
00089     }
00090     switch(dc->type) {
00091     case NSSCertificateType_PKIX:
00092        return nssDecodedPKIXCertificate_Destroy(dc);
00093     default:
00094 #if 0
00095        nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
00096 #endif
00097        break;
00098     }
00099     return PR_FAILURE;
00100 }
00101