• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDE Support
  • Sitemap
  • Contact Us
 

qca

qca_cert.h

Go to the documentation of this file.
00001 /*
00002  * qca_cert.h - Qt Cryptographic Architecture
00003  * Copyright (C) 2003-2007  Justin Karneges <justin@affinix.com>
00004  * Copyright (C) 2004-2006  Brad Hards <bradh@frogmouth.net>
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00019  * 02110-1301  USA
00020  *
00021  */
00022 
00033 #ifndef QCA_CERT_H
00034 #define QCA_CERT_H
00035 
00036 #include <QMap>
00037 #include <QDateTime>
00038 #include "qca_core.h"
00039 #include "qca_publickey.h"
00040 
00041 namespace QCA {
00042 
00043 class CertContext;
00044 class CSRContext;
00045 class CRLContext;
00046 class Certificate;
00047 class CRL;
00048 class CertificateCollection;
00049 class CertificateChain;
00050 
00051 
00055 enum CertificateRequestFormat
00056 {
00057     PKCS10, 
00058     SPKAC   
00059 };
00060 
00066 enum CertificateInfoTypeKnown
00067 {
00068     CommonName,             
00069     Email,                  
00070     EmailLegacy,            
00071     Organization,           
00072     OrganizationalUnit,     
00073     Locality,               
00074     IncorporationLocality,  
00075     State,                  
00076     IncorporationState,     
00077     Country,                
00078     IncorporationCountry,   
00079     URI,                    
00080     DNS,                    
00081     IPAddress,              
00082     XMPP                    
00083 };
00084 
00121 class QCA_EXPORT CertificateInfoType
00122 {
00123 public:
00127     enum Section
00128     {
00129         DN,              
00130         AlternativeName  
00131     };
00132 
00136     CertificateInfoType();
00137 
00146     CertificateInfoType(CertificateInfoTypeKnown known);
00147 
00156     CertificateInfoType(const QString &id, Section section);
00157 
00163     CertificateInfoType(const CertificateInfoType &from);
00164 
00165     ~CertificateInfoType();
00166 
00172     CertificateInfoType & operator=(const CertificateInfoType &from);
00173 
00177     Section section() const;
00178 
00186     CertificateInfoTypeKnown known() const;
00187 
00206     QString id() const;
00207 
00214     bool operator<(const CertificateInfoType &other) const;
00215 
00222     bool operator==(const CertificateInfoType &other) const;
00223 
00230     inline bool operator!=(const CertificateInfoType &other) const
00231     {
00232         return !(*this == other);
00233     }
00234 
00235 private:
00236     class Private;
00237     QSharedDataPointer<Private> d;
00238 };
00239 
00247 class QCA_EXPORT CertificateInfoPair
00248 {
00249 public:
00253     CertificateInfoPair();
00254 
00261     CertificateInfoPair(const CertificateInfoType &type, const QString &value);
00262 
00268     CertificateInfoPair(const CertificateInfoPair &from);
00269 
00270     ~CertificateInfoPair();
00271 
00277     CertificateInfoPair & operator=(const CertificateInfoPair &from);
00278 
00282     CertificateInfoType type() const;
00283 
00287     QString value() const;
00288 
00295     bool operator==(const CertificateInfoPair &other) const;
00296 
00303     inline bool operator!=(const CertificateInfoPair &other) const
00304     {
00305         return !(*this == other);
00306     }
00307 
00308 private:
00309     class Private;
00310     QSharedDataPointer<Private> d;
00311 };
00312 
00313 
00319 enum ConstraintTypeKnown
00320 {
00321     // KeyUsage
00322     DigitalSignature,    
00323     NonRepudiation,      
00324     KeyEncipherment,     
00325     DataEncipherment,    
00326     KeyAgreement,        
00327     KeyCertificateSign,  
00328     CRLSign,             
00329     EncipherOnly,        
00330     DecipherOnly,        
00331 
00332     // ExtKeyUsage
00333     ServerAuth,       
00334     ClientAuth,       
00335     CodeSigning,      
00336     EmailProtection,  
00337     IPSecEndSystem,   
00338     IPSecTunnel,      
00339     IPSecUser,        
00340     TimeStamping,     
00341     OCSPSigning       
00342 };
00343 
00357 class QCA_EXPORT ConstraintType
00358 {
00359 public:
00363     enum Section
00364     {
00365         KeyUsage,          
00366         ExtendedKeyUsage   
00367     };
00368 
00372     ConstraintType();
00373 
00382     ConstraintType(ConstraintTypeKnown known);
00383 
00392     ConstraintType(const QString &id, Section section);
00393 
00399     ConstraintType(const ConstraintType &from);
00400 
00401     ~ConstraintType();
00402 
00408     ConstraintType & operator=(const ConstraintType &from);
00409 
00413     Section section() const;
00414 
00422     ConstraintTypeKnown known() const;
00423 
00442     QString id() const;
00443 
00449     bool operator<(const ConstraintType &other) const;
00450 
00456     bool operator==(const ConstraintType &other) const;
00457 
00463     inline bool operator!=(const ConstraintType &other) const
00464     {
00465         return !(*this == other);
00466     }
00467 
00468 private:
00469     class Private;
00470     QSharedDataPointer<Private> d;
00471 };
00472 
00476 enum UsageMode
00477 {
00478     UsageAny             = 0x00, 
00479     UsageTLSServer       = 0x01, 
00480     UsageTLSClient       = 0x02, 
00481     UsageCodeSigning     = 0x04, 
00482     UsageEmailProtection = 0x08, 
00483     UsageTimeStamping    = 0x10, 
00484     UsageCRLSigning      = 0x20  
00485 };
00486 
00490 enum Validity
00491 {
00492     ValidityGood,            
00493     ErrorRejected,           
00494     ErrorUntrusted,          
00495     ErrorSignatureFailed,    
00496     ErrorInvalidCA,          
00497     ErrorInvalidPurpose,     
00498     ErrorSelfSigned,         
00499     ErrorRevoked,            
00500     ErrorPathLengthExceeded, 
00501     ErrorExpired,            
00502     ErrorExpiredCA,          
00503     ErrorValidityUnknown = 64  
00504 };
00505 
00509 enum ValidateFlags
00510 {
00511     ValidateAll     = 0x00,  // Verify all conditions
00512     ValidateRevoked = 0x01,  // Verify the certificate was not revoked
00513     ValidateExpired = 0x02,  // Verify the certificate has not expired
00514     ValidatePolicy  = 0x04   // Verify the certificate can be used for a specified purpose
00515 };
00516 
00528 typedef QMultiMap<CertificateInfoType, QString> CertificateInfo;
00529 
00540 class CertificateInfoOrdered : public QList<CertificateInfoPair>
00541 {
00542 public:
00546     inline QString toString() const;
00547 
00552     inline CertificateInfoOrdered dnOnly() const;
00553 };
00554 
00560 QCA_EXPORT QString orderedToDNString(const CertificateInfoOrdered &in);
00561 
00568 QCA_EXPORT CertificateInfoOrdered orderedDNOnly(const CertificateInfoOrdered &in);
00569 
00570 inline QString CertificateInfoOrdered::toString() const
00571 {
00572     return orderedToDNString(*this);
00573 }
00574 
00575 inline CertificateInfoOrdered CertificateInfoOrdered::dnOnly() const
00576 {
00577     return orderedDNOnly(*this);
00578 }
00579 
00583 typedef QList<ConstraintType> Constraints;
00584 
00591 QCA_EXPORT QStringList makeFriendlyNames(const QList<Certificate> &list);
00592 
00602 class QCA_EXPORT CertificateOptions
00603 {
00604 public:
00610     CertificateOptions(CertificateRequestFormat format = PKCS10);
00611 
00617     CertificateOptions(const CertificateOptions &from);
00618     ~CertificateOptions();
00619 
00625     CertificateOptions & operator=(const CertificateOptions &from);
00626 
00630     CertificateRequestFormat format() const;
00631 
00637     void setFormat(CertificateRequestFormat f);
00638 
00644     bool isValid() const;
00645 
00653     QString challenge() const;
00654 
00660     CertificateInfo info() const;
00661 
00668     CertificateInfoOrdered infoOrdered() const;
00669 
00673     Constraints constraints() const;
00674 
00678     QStringList policies() const;
00679 
00687     QStringList crlLocations() const;
00688 
00696     QStringList issuerLocations() const;
00697 
00703     QStringList ocspLocations() const;
00704 
00711     bool isCA() const;
00712 
00716     int pathLimit() const;
00717 
00723     BigInteger serialNumber() const;
00724 
00730     QDateTime notValidBefore() const;
00731 
00737     QDateTime notValidAfter() const;
00738 
00747     void setChallenge(const QString &s);
00748 
00757     void setInfo(const CertificateInfo &info);
00758 
00767     void setInfoOrdered(const CertificateInfoOrdered &info);
00768 
00774     void setConstraints(const Constraints &constraints);
00775 
00781     void setPolicies(const QStringList &policies);
00782 
00790     void setCRLLocations(const QStringList &locations);
00791 
00799     void setIssuerLocations(const QStringList &locations);
00800 
00806     void setOCSPLocations(const QStringList &locations);
00807 
00813     void setAsCA(int pathLimit = 8); // value from Botan
00814 
00818     void setAsUser();
00819 
00825     void setSerialNumber(const BigInteger &i);
00826 
00833     void setValidityPeriod(const QDateTime &start, const QDateTime &end);
00834 
00835 private:
00836     class Private;
00837     Private *d;
00838 };
00839 
00849 class QCA_EXPORT Certificate : public Algorithm
00850 {
00851 public:
00855     Certificate();
00856 
00863     Certificate(const QString &fileName);
00864 
00874     Certificate(const CertificateOptions &opts, const PrivateKey &key, const QString &provider = QString());
00875 
00881     Certificate(const Certificate &from);
00882 
00883     ~Certificate();
00884 
00890     Certificate & operator=(const Certificate &from);
00891 
00896     bool isNull() const;
00897 
00901     QDateTime notValidBefore() const;
00902 
00906     QDateTime notValidAfter() const;
00907 
00925     CertificateInfo subjectInfo() const;
00926 
00946     CertificateInfoOrdered subjectInfoOrdered() const;
00947 
00953     CertificateInfo issuerInfo() const;
00954 
00967     CertificateInfoOrdered issuerInfoOrdered() const;
00968 
00972     Constraints constraints() const;
00973 
00979     QStringList policies() const;
00980 
00986     QStringList crlLocations() const;
00987 
00993     QStringList issuerLocations() const;
00994 
00998     QStringList ocspLocations() const;
00999 
01006     QString commonName() const;
01007 
01011     BigInteger serialNumber() const;
01012 
01016     PublicKey subjectPublicKey() const;
01017 
01023     bool isCA() const;
01024 
01030     bool isSelfSigned() const;
01031 
01040     bool isIssuerOf(const Certificate &other) const;
01041 
01046     int pathLimit() const;
01047 
01051     SignatureAlgorithm signatureAlgorithm() const;
01052 
01056     QByteArray subjectKeyId() const;
01057 
01061     QByteArray issuerKeyId() const;
01062 
01074     Validity validate(const CertificateCollection &trusted, const CertificateCollection &untrusted, UsageMode u = UsageAny, ValidateFlags vf = ValidateAll) const;
01075 
01079     QByteArray toDER() const;
01080 
01084     QString toPEM() const;
01085 
01091     bool toPEMFile(const QString &fileName) const;
01092 
01105     static Certificate fromDER(const QByteArray &a, ConvertResult *result = 0, const QString &provider = QString());
01106 
01119     static Certificate fromPEM(const QString &s, ConvertResult *result = 0, const QString &provider = QString());
01120 
01134     static Certificate fromPEMFile(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
01135 
01148     bool matchesHostName(const QString &host) const;
01149 
01157     bool operator==(const Certificate &a) const;
01158 
01164     inline bool operator!=(const Certificate &other) const
01165     {
01166         return !(*this == other);
01167     }
01168 
01174     void change(CertContext *c);
01175 
01176 private:
01177     class Private;
01178     friend class Private;
01179     QSharedDataPointer<Private> d;
01180 
01181     friend class CertificateChain;
01182     Validity chain_validate(const CertificateChain &chain, const CertificateCollection &trusted, const QList<CRL> &untrusted_crls, UsageMode u, ValidateFlags vf) const;
01183     CertificateChain chain_complete(const CertificateChain &chain, const QList<Certificate> &issuers, Validity *result) const;
01184 };
01185 
01208 class CertificateChain : public QList<Certificate>
01209 {
01210 public:
01214     inline CertificateChain() {}
01215 
01222     inline CertificateChain(const Certificate &primary) { append(primary); }
01223 
01227     inline const Certificate & primary() const { return first(); }
01228 
01242     inline Validity validate(const CertificateCollection &trusted, const QList<CRL> &untrusted_crls = QList<CRL>(), UsageMode u = UsageAny, ValidateFlags vf = ValidateAll) const;
01243 
01267     inline CertificateChain complete(const QList<Certificate> &issuers = QList<Certificate>(), Validity *result = 0) const;
01268 };
01269 
01270 inline Validity CertificateChain::validate(const CertificateCollection &trusted, const QList<CRL> &untrusted_crls, UsageMode u, ValidateFlags vf) const
01271 {
01272     if(isEmpty())
01273         return ErrorValidityUnknown;
01274     return first().chain_validate(*this, trusted, untrusted_crls, u, vf);
01275 }
01276 
01277 inline CertificateChain CertificateChain::complete(const QList<Certificate> &issuers, Validity *result) const
01278 {
01279     if(isEmpty())
01280         return CertificateChain();
01281     return first().chain_complete(*this, issuers, result);
01282 }
01283 
01293 class QCA_EXPORT CertificateRequest : public Algorithm
01294 {
01295 public:
01299     CertificateRequest();
01300 
01307     CertificateRequest(const QString &fileName);
01308 
01318     CertificateRequest(const CertificateOptions &opts, const PrivateKey &key, const QString &provider = QString());
01319 
01325     CertificateRequest(const CertificateRequest &from);
01326 
01327     ~CertificateRequest();
01328 
01334     CertificateRequest & operator=(const CertificateRequest &from);
01335 
01341     bool isNull() const;
01342 
01353     static bool canUseFormat(CertificateRequestFormat f, const QString &provider = QString());
01354 
01358     CertificateRequestFormat format() const;
01359 
01368     CertificateInfo subjectInfo() const;
01369 
01380     CertificateInfoOrdered subjectInfoOrdered() const;
01381 
01387     Constraints constraints() const;
01388 
01394     QStringList policies() const;
01395 
01399     PublicKey subjectPublicKey() const;
01400 
01407     bool isCA() const;
01408 
01414     int pathLimit() const;
01415 
01419     QString challenge() const;
01420 
01425     SignatureAlgorithm signatureAlgorithm() const;
01426 
01434     bool operator==(const CertificateRequest &csr) const;
01435 
01441     inline bool operator!=(const CertificateRequest &other) const
01442     {
01443         return !(*this == other);
01444     }
01445 
01451     QByteArray toDER() const;
01452 
01458     QString toPEM() const;
01459 
01467     bool toPEMFile(const QString &fileName) const;
01468 
01483     static CertificateRequest fromDER(const QByteArray &a, ConvertResult *result = 0, const QString &provider = QString());
01484 
01500     static CertificateRequest fromPEM(const QString &s, ConvertResult *result = 0, const QString &provider = QString());
01501 
01517     static CertificateRequest fromPEMFile(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
01518 
01526     QString toString() const;
01527 
01542     static CertificateRequest fromString(const QString &s, ConvertResult *result = 0, const QString &provider = QString());
01543 
01549     void change(CSRContext *c);
01550 
01551 private:
01552     class Private;
01553     friend class Private;
01554     QSharedDataPointer<Private> d;
01555 };
01556 
01564 class QCA_EXPORT CRLEntry
01565 {
01566 public:
01570     enum Reason
01571     {
01572         Unspecified,        
01573         KeyCompromise,      
01574         CACompromise,       
01575         AffiliationChanged,
01576         Superseded,         
01577         CessationOfOperation,
01578         CertificateHold,    
01579         RemoveFromCRL,      
01580         PrivilegeWithdrawn,
01581         AACompromise        
01582     };
01583 
01587     CRLEntry();
01588 
01595     explicit CRLEntry(const Certificate &c, Reason r = Unspecified);
01596 
01605     CRLEntry(const BigInteger serial, const QDateTime &time, Reason r = Unspecified);
01606 
01612     CRLEntry(const CRLEntry &from);
01613 
01614     ~CRLEntry();
01615 
01621     CRLEntry & operator=(const CRLEntry &from);
01622 
01626     BigInteger serialNumber() const;
01627 
01631     QDateTime time() const;
01632 
01636     bool isNull() const;
01637 
01644     Reason reason() const;
01645 
01653     bool operator<(const CRLEntry &a) const;
01654 
01662     bool operator==(const CRLEntry &a) const;
01663 
01669     inline bool operator!=(const CRLEntry &other) const
01670     {
01671         return !(*this == other);
01672     }
01673 
01674 private:
01675     BigInteger _serial;
01676     QDateTime _time;
01677     Reason _reason;
01678 
01679     class Private;
01680     Private *d;
01681 };
01682 
01703 class QCA_EXPORT CRL : public Algorithm
01704 {
01705 public:
01706     CRL();
01707 
01713     CRL(const CRL &from);
01714 
01715     ~CRL();
01716 
01722     CRL & operator=(const CRL &from);
01723 
01729     bool isNull() const;
01730 
01737     CertificateInfo issuerInfo() const;
01738 
01747     CertificateInfoOrdered issuerInfoOrdered() const;
01748 
01755     int number() const;
01756 
01760     QDateTime thisUpdate() const;
01761 
01767     QDateTime nextUpdate() const;
01768 
01772     QList<CRLEntry> revoked() const;
01773 
01777     SignatureAlgorithm signatureAlgorithm() const;
01778 
01782     QByteArray issuerKeyId() const;
01783 
01791     bool operator==(const CRL &a) const;
01792 
01798     inline bool operator!=(const CRL &other) const
01799     {
01800         return !(*this == other);
01801     }
01802 
01808     QByteArray toDER() const;
01809 
01815     QString toPEM() const;
01816 
01823     bool toPEMFile(const QString &fileName) const;
01824 
01836     static CRL fromDER(const QByteArray &a, ConvertResult *result = 0, const QString &provider = QString());
01837 
01849     static CRL fromPEM(const QString &s, ConvertResult *result = 0, const QString &provider = QString());
01850 
01863     static CRL fromPEMFile(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
01864 
01870     void change(CRLContext *c);
01871 
01872 private:
01873     class Private;
01874     friend class Private;
01875     QSharedDataPointer<Private> d;
01876 };
01877 
01891 class QCA_EXPORT CertificateCollection
01892 {
01893 public:
01897     CertificateCollection();
01898 
01904     CertificateCollection(const CertificateCollection &from);
01905 
01906     ~CertificateCollection();
01907 
01913     CertificateCollection & operator=(const CertificateCollection &from);
01914 
01920     void addCertificate(const Certificate &cert);
01921 
01928     void addCRL(const CRL &crl);
01929 
01933     QList<Certificate> certificates() const;
01934 
01938     QList<CRL> crls() const;
01939 
01945     void append(const CertificateCollection &other);
01946 
01952     CertificateCollection operator+(const CertificateCollection &other) const;
01953 
01959     CertificateCollection & operator+=(const CertificateCollection &other);
01960 
01971     static bool canUsePKCS7(const QString &provider = QString());
01972 
01981     bool toFlatTextFile(const QString &fileName);
01982 
01993     bool toPKCS7File(const QString &fileName, const QString &provider = QString());
01994 
02008     static CertificateCollection fromFlatTextFile(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
02009 
02023     static CertificateCollection fromPKCS7File(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
02024 
02025 private:
02026     class Private;
02027     QSharedDataPointer<Private> d;
02028 };
02029 
02038 class QCA_EXPORT CertificateAuthority : public Algorithm
02039 {
02040 public:
02049     CertificateAuthority(const Certificate &cert, const PrivateKey &key, const QString &provider);
02050 
02056     CertificateAuthority(const CertificateAuthority &from);
02057 
02058     ~CertificateAuthority();
02059 
02065     CertificateAuthority & operator=(const CertificateAuthority &from);
02066 
02073     Certificate certificate() const;
02074 
02082     Certificate signRequest(const CertificateRequest &req, const QDateTime &notValidAfter) const;
02083 
02090     Certificate createCertificate(const PublicKey &key, const CertificateOptions &opts) const;
02091 
02099     CRL createCRL(const QDateTime &nextUpdate) const;
02100 
02110     CRL updateCRL(const CRL &crl, const QList<CRLEntry> &entries, const QDateTime &nextUpdate) const;
02111 
02112 private:
02113     class Private;
02114     Private *d;
02115 };
02116 
02136 class QCA_EXPORT KeyBundle
02137 {
02138 public:
02142     KeyBundle();
02143 
02161     explicit KeyBundle(const QString &fileName, const SecureArray &passphrase = SecureArray());
02162 
02168     KeyBundle(const KeyBundle &from);
02169 
02170     ~KeyBundle();
02171 
02177     KeyBundle & operator=(const KeyBundle &from);
02178 
02182     bool isNull() const;
02183 
02193     QString name() const;
02194 
02200     CertificateChain certificateChain() const;
02201 
02207     PrivateKey privateKey() const;
02208 
02214     void setName(const QString &s);
02215 
02225     void setCertificateChainAndKey(const CertificateChain &c, const PrivateKey &key);
02226 
02250     QByteArray toArray(const SecureArray &passphrase, const QString &provider = QString()) const;
02251 
02276     bool toFile(const QString &fileName, const SecureArray &passphrase, const QString &provider = QString()) const;
02277 
02308     static KeyBundle fromArray(const QByteArray &a, const SecureArray &passphrase = SecureArray(), ConvertResult *result = 0, const QString &provider = QString());
02309 
02340     static KeyBundle fromFile(const QString &fileName, const SecureArray &passphrase = SecureArray(), ConvertResult *result = 0, const QString &provider = QString());
02341 
02342 private:
02343     class Private;
02344     QSharedDataPointer<Private> d;
02345 };
02346 
02361 class QCA_EXPORT PGPKey : public Algorithm
02362 {
02363 public:
02367     PGPKey();
02368 
02378     PGPKey(const QString &fileName);
02379 
02385     PGPKey(const PGPKey &from);
02386 
02387     ~PGPKey();
02388 
02394     PGPKey & operator=(const PGPKey &from);
02395 
02401     bool isNull() const;
02402 
02406     QString keyId() const;
02407 
02411     QString primaryUserId() const;
02412 
02416     QStringList userIds() const;
02417 
02423     bool isSecret() const;
02424 
02428     QDateTime creationDate() const;
02429 
02433     QDateTime expirationDate() const;
02434 
02441     QString fingerprint() const;
02442 
02451     bool inKeyring() const;
02452 
02458     bool isTrusted() const;
02459 
02469     QByteArray toArray() const;
02470 
02479     QString toString() const;
02480 
02486     bool toFile(const QString &fileName) const;
02487 
02497     static PGPKey fromArray(const QByteArray &a, ConvertResult *result = 0, const QString &provider = QString());
02498 
02508     static PGPKey fromString(const QString &s, ConvertResult *result = 0, const QString &provider = QString());
02509 
02520     static PGPKey fromFile(const QString &fileName, ConvertResult *result = 0, const QString &provider = QString());
02521 
02522 private:
02523     class Private;
02524     Private *d;
02525 };
02526 
02566 class QCA_EXPORT KeyLoader : public QObject
02567 {
02568     Q_OBJECT
02569 public:
02575     KeyLoader(QObject *parent = 0);
02576     ~KeyLoader();
02577 
02587     void loadPrivateKeyFromPEMFile(const QString &fileName);
02588 
02597     void loadPrivateKeyFromPEM(const QString &s);
02598 
02607     void loadPrivateKeyFromDER(const SecureArray &a);
02608 
02617     void loadKeyBundleFromFile(const QString &fileName);
02618 
02626     void loadKeyBundleFromArray(const QByteArray &a);
02627 
02633     ConvertResult convertResult() const;
02634 
02644     PrivateKey privateKey() const;
02645 
02654     KeyBundle keyBundle() const;
02655 
02656 Q_SIGNALS:
02664     void finished();
02665 
02666 private:
02667     Q_DISABLE_COPY(KeyLoader)
02668 
02669     class Private;
02670     friend class Private;
02671     Private *d;
02672 };
02673 
02674 }
02675 
02676 #endif

qca

Skip menu "qca"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE Support

Skip menu "KDE Support"
  • akonadi
  • Decibel
  • grantlee
  • kdewin
  • phonon
  •     Backend
  • polkit-qt
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for KDE Support by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal