mirror of
https://github.com/chris2511/xca.git
synced 2026-09-14 11:06:19 +05:00
Wizard changed
This commit is contained in:
parent
3661589517
commit
ecdecbc8a9
@ -82,7 +82,7 @@ void MainWindow::newCert(pki_temp *templ)
|
||||
|
||||
|
||||
// Step 1 - Subject and key
|
||||
if (dlg->fromDataRB->isChecked()) {
|
||||
if (!dlg->fromReqCB->isChecked()) {
|
||||
clientkey = (pki_key *)keys->getSelectedPKI(dlg->keyList->currentText().latin1());
|
||||
if (opensslError(clientkey)) goto err;
|
||||
string cn = dlg->commonName->text().latin1();
|
||||
@ -230,7 +230,6 @@ void MainWindow::newCert(pki_temp *templ)
|
||||
addStr(certTypeStr, certTypeList[i]);
|
||||
}
|
||||
}
|
||||
CERR << "IssAltName:" << issAltName<< endl;
|
||||
cert->addV3ext(NID_netscape_cert_type, certTypeStr);
|
||||
cert->addV3ext(NID_netscape_base_url, dlg->nsBaseUrl->text().latin1());
|
||||
cert->addV3ext(NID_netscape_revocation_url, dlg->nsRevocationUrl->text().latin1());
|
||||
@ -245,8 +244,10 @@ void MainWindow::newCert(pki_temp *templ)
|
||||
if (opensslError(cert)) goto err;
|
||||
CERR << "SIGNED" <<endl;
|
||||
insertCert(cert);
|
||||
if (tempReq) delete(req);
|
||||
CERR <<"inserted"<<endl;
|
||||
if (tempReq && req) delete(req);
|
||||
delete (dlg);
|
||||
CERR << "Dialog deleted" <<endl;
|
||||
return;
|
||||
err:
|
||||
if (cert) delete(cert);
|
||||
@ -492,6 +493,7 @@ void MainWindow::insertCert(pki_x509 *cert)
|
||||
delete(cert);
|
||||
return;
|
||||
}
|
||||
CERR << "insertCert: inserting" <<endl;
|
||||
certs->insertPKI(cert);
|
||||
}
|
||||
|
||||
@ -742,7 +744,7 @@ void MainWindow::genCrl()
|
||||
}
|
||||
certs->assignClients(crl);
|
||||
crl->addV3ext(NID_authority_key_identifier,"keyid,issuer");
|
||||
crl->addV3ext(NID_issuer_alt_name,"issuer:copy");
|
||||
//crl->addV3ext(NID_issuer_alt_name,"issuer:copy");
|
||||
crl->sign(cert->getKey());
|
||||
if (!opensslError(crl)) {
|
||||
crl->writeCrl(s.latin1());
|
||||
|
||||
111
NewX509.cpp
111
NewX509.cpp
@ -66,6 +66,9 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
bigImg1->setPixmap(*image);
|
||||
bigImg2->setPixmap(*image);
|
||||
bigImg3->setPixmap(*image);
|
||||
bigImg4->setPixmap(*image);
|
||||
bigImg5->setPixmap(*image);
|
||||
bigImg6->setPixmap(*image);
|
||||
nsImg->setPixmap(*ns);
|
||||
}
|
||||
#ifdef qt3
|
||||
@ -96,14 +99,13 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
else {
|
||||
keyList->setEnabled(false);
|
||||
genKeyBUT->setEnabled(false);
|
||||
setAppropriate(page3, false);
|
||||
}
|
||||
|
||||
// any PKCS#10 requests to be used ?
|
||||
if (reqs) {
|
||||
strings = reqs->getDesc();
|
||||
if (strings.isEmpty()) {
|
||||
fromReqRB->setDisabled(true);
|
||||
fromReqCB->setDisabled(true);
|
||||
}
|
||||
else {
|
||||
reqList->insertStringList(strings);
|
||||
@ -111,7 +113,7 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
}
|
||||
else {
|
||||
reqList->setEnabled(false);
|
||||
fromReqRB->setEnabled(false);
|
||||
fromReqCB->setEnabled(false);
|
||||
}
|
||||
|
||||
// How about signing certificates ?
|
||||
@ -126,9 +128,10 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
// suggested from: Andrey Brindeew <abr@abr.pp.ru>
|
||||
possibleSigner=(pki_x509 *)certs->getSelectedPKI();
|
||||
if (possibleSigner && possibleSigner->canSign()) {
|
||||
//const QString name = possibleSigner->getDescription().c_str();
|
||||
//certList->setCurrentText(name);
|
||||
QString name = possibleSigner->getDescription().c_str();
|
||||
certList->setCurrentText(name);
|
||||
foreignSignRB->setChecked(true);
|
||||
// certList->setEnabled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -141,7 +144,7 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
if (temps) {
|
||||
strings = temps->getDesc();
|
||||
if (strings.isEmpty()) {
|
||||
setAppropriate(page1,false);
|
||||
templateBox->setEnabled(false);
|
||||
}
|
||||
else {
|
||||
strings.prepend(tr("Empty Template"));
|
||||
@ -149,22 +152,21 @@ NewX509::NewX509(QWidget *parent , const char *name, db_key *key, db_x509req *re
|
||||
}
|
||||
}
|
||||
else {
|
||||
setAppropriate(page1,false);
|
||||
templateBox->setEnabled(false);
|
||||
}
|
||||
|
||||
fromDataRB->setChecked(true);
|
||||
setFinishEnabled(page7,true);
|
||||
setNextEnabled(page2,false);
|
||||
}
|
||||
void NewX509::setRequest()
|
||||
{
|
||||
setAppropriate(page3, false);
|
||||
setAppropriate(page4, false);
|
||||
setAppropriate(page5, false);
|
||||
setAppropriate(page6, false);
|
||||
finishButton()->setEnabled(true);
|
||||
changeDefault->setEnabled(false);
|
||||
changeDefault->setChecked(false);
|
||||
signerBox->setEnabled(false);
|
||||
startText=tr("Welcome to the settings for Certificate signing requests.... (needs more prosa)");
|
||||
endText=tr("You are done with entering all parameters for generating a Certificate signing request..... (needs more prosa)");
|
||||
tText=tr("Certificate request");
|
||||
@ -174,7 +176,6 @@ void NewX509::setRequest()
|
||||
void NewX509::setTemp(pki_temp *temp)
|
||||
{
|
||||
setAppropriate(page1, false);
|
||||
setAppropriate(page3, false);
|
||||
finishButton()->setEnabled(true);
|
||||
startText=tr("Welcome to the settings for Templates.... (needs more prosa)");
|
||||
endText=tr("You are done with entering all parameters for generating a Template..... (needs more prosa)");
|
||||
@ -203,9 +204,8 @@ void NewX509::setup()
|
||||
setTitle(page0, tText + " Wizard");
|
||||
setTitle(page1, tText + " template selection");
|
||||
setTitle(page2, tText + " personal settings");
|
||||
setTitle(page3, tText + " signing selection");
|
||||
setTitle(page4, tText + " X.509 v3 Extensions");
|
||||
setTitle(page5, tText + " keyusage setup");
|
||||
setTitle(page5, tText + " key usage setup");
|
||||
setTitle(page6, tText + " Netscape extensions");
|
||||
setTitle(page7, tText + " Wizard finished");
|
||||
}
|
||||
@ -213,7 +213,7 @@ void NewX509::setup()
|
||||
void NewX509::defineTemplate(pki_temp *temp)
|
||||
{
|
||||
setAppropriate(page1,false);
|
||||
fixtemp = temp;
|
||||
//fixtemp = temp;
|
||||
fromTemplate(temp);
|
||||
}
|
||||
|
||||
@ -312,11 +312,23 @@ void NewX509::toTemplate(pki_temp *temp)
|
||||
temp->pathLen = basicPath->text().toInt();
|
||||
}
|
||||
|
||||
|
||||
void NewX509::toggleFromRequest()
|
||||
{
|
||||
if (fromReqCB->isChecked()) {
|
||||
setAppropriate(page2, false);
|
||||
reqList->setEnabled(true);
|
||||
}
|
||||
else {
|
||||
setAppropriate(page2, true);
|
||||
reqList->setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void NewX509::dataChangeP2()
|
||||
{
|
||||
CERR << "Data changed" << endl;
|
||||
if ((description->text() != "" || fromReqRB->isChecked()) &&
|
||||
if ((description->text() != "" || fromReqCB->isChecked()) &&
|
||||
(keyList->count() > 0 || !keyList->isEnabled())){
|
||||
setNextEnabled(page2,true);
|
||||
}
|
||||
@ -329,40 +341,51 @@ void NewX509::showPage(QWidget *page)
|
||||
{
|
||||
|
||||
if (page == page0) {
|
||||
templateChanged();
|
||||
signerChanged();
|
||||
switchExtended();
|
||||
toggleFromRequest();
|
||||
}
|
||||
else if ( page == page2 ) {
|
||||
dataChangeP2();
|
||||
description->setFocus();
|
||||
}
|
||||
else if ( page == page3 ) {
|
||||
if (!selfSignRB->isChecked() && !foreignSignRB->isChecked()) {
|
||||
if (fromDataRB->isChecked()) {
|
||||
selfSignRB->setChecked(true);
|
||||
serialNr->setText("00");
|
||||
serialNr->setFocus();
|
||||
}
|
||||
else {
|
||||
foreignSignRB->setChecked(true);
|
||||
foreignSignRB->setFocus();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (!foreignSignRB->isEnabled()) {
|
||||
selfSignRB->setChecked(true);
|
||||
serialNr->setText("00");
|
||||
serialNr->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
QWizard::showPage(page);
|
||||
|
||||
if ( page == page2 ) {
|
||||
description->setFocus();
|
||||
}
|
||||
else if (page == page4) {
|
||||
basicCA->setFocus();
|
||||
}
|
||||
QWizard::showPage(page);
|
||||
|
||||
}
|
||||
|
||||
void NewX509::signerChanged()
|
||||
{
|
||||
CERR << "signer Changed" <<endl;
|
||||
// int i=0, sel=0;
|
||||
if (!certs) return;
|
||||
QString name = certList->currentText();
|
||||
CERR << "Certificate: " << name.latin1() << endl;
|
||||
if (name.isEmpty()) return;
|
||||
pki_x509 *cert = (pki_x509 *)certs->getSelectedPKI(name.latin1());
|
||||
if (!cert) return;
|
||||
QString templ = cert->getTemplate().c_str();
|
||||
CERR << "set Template: " << templ.latin1() << endl;
|
||||
tempList->setCurrentText(templ);
|
||||
templateChanged();
|
||||
/*
|
||||
QStringList templates = tempList->list();
|
||||
for (i=0; i<templates.count(); i++) {
|
||||
if (templates[i] == templ) {
|
||||
sel = i;
|
||||
}
|
||||
}
|
||||
if (sel >0) {
|
||||
tempList->setSelected(sel);
|
||||
}*/
|
||||
}
|
||||
|
||||
void NewX509::templateChanged()
|
||||
{
|
||||
if (!appropriate(page1)) return;
|
||||
@ -379,7 +402,7 @@ void NewX509::switchExtended()
|
||||
{
|
||||
if ( !appropriate(page1) ) return;
|
||||
CERR << "SWITCH Extended" <<endl;
|
||||
if (changeDefault->isChecked()) {
|
||||
if (changeDefault->isChecked() || !templateBox->isEnabled()) {
|
||||
setAppropriate(page4, true);
|
||||
setAppropriate(page5, true);
|
||||
setAppropriate(page6, true);
|
||||
@ -391,18 +414,6 @@ void NewX509::switchExtended()
|
||||
}
|
||||
}
|
||||
|
||||
void NewX509::setDisabled(int state)
|
||||
{
|
||||
if (state == 2) {
|
||||
inputFrame->setDisabled(false);
|
||||
reqList->setDisabled(true);
|
||||
}
|
||||
else if (state == 0) {
|
||||
inputFrame->setDisabled(true);
|
||||
reqList->setDisabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
void NewX509::newKey()
|
||||
{
|
||||
emit genKey();
|
||||
|
||||
@ -67,6 +67,7 @@
|
||||
#include <qpixmap.h>
|
||||
#include <qvalidator.h>
|
||||
#include <qregexp.h>
|
||||
#include <qbuttongroup.h>
|
||||
|
||||
#ifndef NEWX509_H
|
||||
#define NEWX509_H
|
||||
@ -97,12 +98,13 @@ class NewX509: public NewX509_UI
|
||||
void int2lb(QListBox *lb, int x);
|
||||
|
||||
public slots:
|
||||
void setDisabled(int state);
|
||||
void toggleFromRequest();
|
||||
void newKey();
|
||||
void dataChangeP2();
|
||||
void newKeyDone(QString name);
|
||||
void switchExtended();
|
||||
void templateChanged();
|
||||
void signerChanged();
|
||||
|
||||
signals:
|
||||
void genKey();
|
||||
|
||||
1528
NewX509_UI.ui
1528
NewX509_UI.ui
File diff suppressed because it is too large
Load Diff
@ -95,6 +95,7 @@ pki_x509::pki_x509(string d,pki_key *clientKey, pki_x509req *req, pki_x509 *sign
|
||||
caSerial=0;
|
||||
caTemplate="";
|
||||
crlDays=30;
|
||||
lastCrl= NULL;
|
||||
}
|
||||
|
||||
pki_x509::pki_x509(X509 *c) : pki_base()
|
||||
@ -183,6 +184,9 @@ pki_x509::~pki_x509()
|
||||
if (revoked) {
|
||||
ASN1_TIME_free(revoked);
|
||||
}
|
||||
if (lastCrl) {
|
||||
ASN1_TIME_free(lastCrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -289,10 +293,14 @@ bool pki_x509::fromData(unsigned char *p, int size)
|
||||
unsigned char *pki_x509::toData(int *size)
|
||||
{
|
||||
#define PKI_DB_VERSION (int)3
|
||||
CERR <<"cert toData" << endl;
|
||||
unsigned char *p, *p1;
|
||||
int sCert = i2d_X509(cert, NULL);
|
||||
CERR << "A" <<endl;
|
||||
int sRev = (revoked ? i2d_ASN1_TIME(revoked, NULL) : 0);
|
||||
CERR << "B" <<endl;
|
||||
int sLastCrl = (lastCrl ? i2d_ASN1_TIME(lastCrl, NULL) : 0);
|
||||
CERR << "C" <<endl;
|
||||
// calculate the needed size
|
||||
*size = caTemplate.length() + 1 + sCert + sRev + sLastCrl + (7 * sizeof(int));
|
||||
openssl_error();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user