/* * Copyright (C) 2001 Christian Hohnstaedt. * * All rights reserved. * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * - Neither the name of the author nor the names of its contributors may be * used to endorse or promote products derived from this software without * specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * This program links to software with different licenses from: * * http://www.openssl.org which includes cryptographic software * written by Eric Young (eay@cryptsoft.com)" * * http://www.sleepycat.com * * http://www.trolltech.com * * * * http://www.hohnstaedt.de/xca * email: christian@hohnstaedt.de * * $Id$ * */ #include "pki_temp.h" pki_temp::pki_temp(const pki_temp *pk) :pki_base(pk->desc) { version=pk->version; type=pk->type; C=pk->C; P=pk->P; L=pk->L; O=pk->O; OU=pk->OU; CN=pk->CN; EMAIL=pk->EMAIL; subAltName=pk->subAltName; issAltName=pk->issAltName; crlDist=pk->crlDist; nsCertType=pk->nsCertType; nsComment=pk->nsComment; nsBaseUrl=pk->nsBaseUrl; nsRevocationUrl=pk->nsRevocationUrl; nsCARevocationUrl=pk->nsCARevocationUrl; nsRenewalUrl=pk->nsRenewalUrl; nsCaPolicyUrl=pk->nsCaPolicyUrl; nsSslServerName=pk->nsSslServerName; ca=pk->ca; bcCrit=pk->bcCrit; keyUseCrit=pk->keyUseCrit; eKeyUseCrit=pk->eKeyUseCrit; subKey=pk->subKey; authKey=pk->authKey; subAltCp=pk->subAltCp; issAltCp=pk->issAltCp; pathLen=pk->pathLen; validN=pk->validN; validM=pk->validM; keyUse=pk->keyUse; eKeyUse=pk->eKeyUse; } pki_temp::pki_temp(const string d, int atype) :pki_base(d) { version=1; type=atype; C=""; P=""; L=""; O=""; OU=""; CN=""; EMAIL=""; subAltName=""; issAltName=""; crlDist=""; nsCertType=0; nsComment="xca certificate"; nsBaseUrl=""; nsRevocationUrl=""; nsCARevocationUrl=""; nsRenewalUrl=""; nsCaPolicyUrl=""; nsSslServerName=""; ca=false; bcCrit=false; keyUseCrit=false; eKeyUseCrit=false; subKey=false; authKey=false; subAltCp=false; issAltCp=false; pathLen=0; validN=365; validM=0; keyUse=0; eKeyUse=0; if (type==tCA) { ca=true; bcCrit=true; subKey=true; authKey=true; issAltCp=false; nsCertType=112; keyUse=96; } if (type==tCLIENT) { ca=false; bcCrit=true; authKey=true; issAltCp=true; subAltCp=true; nsCertType=5; keyUse=13; } if (type==tSERVER) { ca=false; bcCrit=true; authKey=true; issAltCp=true; subAltCp=true; nsCertType=2; keyUse=7; } } void pki_temp::fromData(unsigned char *p, int size ) { CERR("Temp fromData"); unsigned char *p1 = p; version=intFromData(&p1); type=intFromData(&p1); ca=boolFromData(&p1); bcCrit=boolFromData(&p1); keyUseCrit=boolFromData(&p1); eKeyUseCrit=boolFromData(&p1); subKey=boolFromData(&p1); authKey=boolFromData(&p1); subAltCp=boolFromData(&p1); issAltCp=boolFromData(&p1); pathLen=intFromData(&p1); validN=intFromData(&p1); validM=intFromData(&p1); keyUse=intFromData(&p1); eKeyUse=intFromData(&p1); nsCertType=intFromData(&p1); C=stringFromData(&p1); P=stringFromData(&p1); L=stringFromData(&p1); O=stringFromData(&p1); OU=stringFromData(&p1); CN=stringFromData(&p1); EMAIL=stringFromData(&p1); subAltName=stringFromData(&p1); issAltName=stringFromData(&p1); crlDist=stringFromData(&p1); nsComment=stringFromData(&p1); nsBaseUrl=stringFromData(&p1); nsRevocationUrl=stringFromData(&p1); nsCARevocationUrl=stringFromData(&p1); nsRenewalUrl=stringFromData(&p1); nsCaPolicyUrl=stringFromData(&p1); nsSslServerName=stringFromData(&p1); //next version: //if (version == 2) { ..... } if (p1-p != size) { CERR( "AAAAarrrrgghhhhh wrong tempsize..." << (p1-p) << " - " <