More API docs.

CCMAIL: justin@affinix.com

svn path=/trunk/kdesupport/qca/; revision=708083
This commit is contained in:
Brad Hards 2007-09-03 19:51:18 +00:00
parent d0f109e61e
commit 2516322eea
4 changed files with 159 additions and 6 deletions

View File

@ -156,22 +156,24 @@ public:
/** /**
Construct a discrete logarithm group from raw parameters Construct a discrete logarithm group from raw parameters
\param p \param p the P parameter
\param q \param q the Q parameter
\param g \param g the G parameter
*/ */
DLGroup(const BigInteger &p, const BigInteger &q, const BigInteger &g); DLGroup(const BigInteger &p, const BigInteger &q, const BigInteger &g);
/** /**
Construct a discrete logarithm group from raw parameters Construct a discrete logarithm group from raw parameters
\param p \param p the P parameter
\param g \param g the G parameter
*/ */
DLGroup(const BigInteger &p, const BigInteger &g); DLGroup(const BigInteger &p, const BigInteger &g);
/** /**
Standard copy constructor Standard copy constructor
\param from the group to copy from
*/ */
DLGroup(const DLGroup &from); DLGroup(const DLGroup &from);
~DLGroup(); ~DLGroup();
@ -237,6 +239,9 @@ public:
DH ///< Diffie Hellman key DH ///< Diffie Hellman key
}; };
/**
Standard constructor
*/
PKey(); PKey();
/** /**
@ -245,6 +250,7 @@ public:
\param from the key to copy from \param from the key to copy from
*/ */
PKey(const PKey &from); PKey(const PKey &from);
~PKey(); ~PKey();
/** /**

View File

@ -544,6 +544,9 @@ protected:
/** /**
Returns an array that is the result of concatenating a and b Returns an array that is the result of concatenating a and b
\param a the string to put at the start of the result
\param b the string to put at the end of the result
*/ */
QCA_EXPORT const SecureArray operator+(const SecureArray &a, const SecureArray &b); QCA_EXPORT const SecureArray operator+(const SecureArray &a, const SecureArray &b);

View File

@ -342,12 +342,17 @@ public:
Standard constructor Standard constructor
\param p the provider associated with this context \param p the provider associated with this context
\param type the name of the KDF provided by this context \param type the name of the KDF provided by this context (including algorithm)
*/ */
KDFContext(Provider *p, const QString &type) : BasicContext(p, type) {} KDFContext(Provider *p, const QString &type) : BasicContext(p, type) {}
/** /**
Create a key and return it Create a key and return it
\param secret the secret part (typically password)
\param salt the salt / initialization vector
\param keyLength the length of the key to be produced
\param iterationCount the number of iterations of the derivation algorith,
*/ */
virtual SymmetricKey makeKey(const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, unsigned int iterationCount) = 0; virtual SymmetricKey makeKey(const SecureArray &secret, const InitializationVector &salt, unsigned int keyLength, unsigned int iterationCount) = 0;
}; };
@ -392,12 +397,19 @@ public:
If an error occurs during generation, then the operation will If an error occurs during generation, then the operation will
complete and isNull() will return true. complete and isNull() will return true.
\param set the group set to generate the key from
\param block whether to block (true) or not (false)
*/ */
virtual void fetchGroup(DLGroupSet set, bool block) = 0; virtual void fetchGroup(DLGroupSet set, bool block) = 0;
/** /**
Obtain the result of the operation. Ensure isNull() returns false Obtain the result of the operation. Ensure isNull() returns false
before calling this function. before calling this function.
\param p the P value
\param q the Q value
\param g the G value
*/ */
virtual void getResult(BigInteger *p, BigInteger *q, BigInteger *g) const = 0; virtual void getResult(BigInteger *p, BigInteger *q, BigInteger *g) const = 0;
@ -428,6 +440,7 @@ public:
Standard constructor Standard constructor
\param p the Provider associated with this context \param p the Provider associated with this context
\param type type of key provided by this context
*/ */
PKeyBase(Provider *p, const QString &type); PKeyBase(Provider *p, const QString &type);
@ -471,6 +484,8 @@ public:
/** /**
Returns the maximum number of bytes that can be encrypted by this Returns the maximum number of bytes that can be encrypted by this
key key
\param alg the algorithm to be used for encryption
*/ */
virtual int maximumEncryptSize(EncryptionAlgorithm alg) const; virtual int maximumEncryptSize(EncryptionAlgorithm alg) const;
@ -537,6 +552,8 @@ public:
public key public key
Essentially for Diffie-Hellman only. Essentially for Diffie-Hellman only.
\param theirs the other side (public key) to be used for key generation.
*/ */
virtual SymmetricKey deriveKey(const PKeyBase &theirs); virtual SymmetricKey deriveKey(const PKeyBase &theirs);
@ -588,11 +605,20 @@ public:
/** /**
Create an RSA private key based on the five components Create an RSA private key based on the five components
\param n the N parameter
\param e the public exponent
\param p the P parameter
\param q the Q parameter
\param d the D parameter
*/ */
virtual void createPrivate(const BigInteger &n, const BigInteger &e, const BigInteger &p, const BigInteger &q, const BigInteger &d) = 0; virtual void createPrivate(const BigInteger &n, const BigInteger &e, const BigInteger &p, const BigInteger &q, const BigInteger &d) = 0;
/** /**
Create an RSA public key based on the two public components Create an RSA public key based on the two public components
\param n the N parameter
\param e the public exponent
*/ */
virtual void createPublic(const BigInteger &n, const BigInteger &e) = 0; virtual void createPublic(const BigInteger &n, const BigInteger &e) = 0;
@ -661,11 +687,18 @@ public:
/** /**
Create a DSA private key based on its numeric components Create a DSA private key based on its numeric components
\param domain the domain values to use for generation
\param y the public Y component
\param x the private X component
*/ */
virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0; virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0;
/** /**
Create a DSA public key based on its numeric components Create a DSA public key based on its numeric components
\param domain the domain values to use for generation
\param y the public Y component
*/ */
virtual void createPublic(const DLGroup &domain, const BigInteger &y) = 0; virtual void createPublic(const DLGroup &domain, const BigInteger &y) = 0;
@ -725,12 +758,19 @@ public:
/** /**
Create a Diffie-Hellman private key based on its numeric Create a Diffie-Hellman private key based on its numeric
components components
\param domain the domain values to use for generation
\param y the public Y component
\param x the private X component
*/ */
virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0; virtual void createPrivate(const DLGroup &domain, const BigInteger &y, const BigInteger &x) = 0;
/** /**
Create a Diffie-Hellman public key based on its numeric Create a Diffie-Hellman public key based on its numeric
components components
\param domain the domain values to use for generation
\param y the public Y component
*/ */
virtual void createPublic(const DLGroup &domain, const BigInteger &y) = 0; virtual void createPublic(const DLGroup &domain, const BigInteger &y) = 0;
@ -807,6 +847,8 @@ public:
Sets the key for this object. If this object already had a key, Sets the key for this object. If this object already had a key,
then the old one is destructed. This object takes ownership of then the old one is destructed. This object takes ownership of
the key. the key.
\param key the key to be set for this object
*/ */
virtual void setKey(PKeyBase *key) = 0; virtual void setKey(PKeyBase *key) = 0;
@ -818,6 +860,8 @@ public:
does not support serialization, but your provider does. The call does not support serialization, but your provider does. The call
to this function would then be followed by an export function, to this function would then be followed by an export function,
such as publicToDER(). such as publicToDER().
\param key the key to be imported
*/ */
virtual bool importKey(const PKeyBase *key) = 0; virtual bool importKey(const PKeyBase *key) = 0;
@ -1797,6 +1841,8 @@ public:
The updated() and storeUpdated() signals might not be emitted if The updated() and storeUpdated() signals might not be emitted if
updates are not enabled. updates are not enabled.
\param enabled whether update notifications are enabled (true) or disabled (false)
*/ */
virtual void setUpdatesEnabled(bool enabled); virtual void setUpdatesEnabled(bool enabled);
@ -1814,6 +1860,8 @@ public:
/** /**
Returns the type of the specified store, or -1 if the integer Returns the type of the specified store, or -1 if the integer
context id is invalid context id is invalid
\param id the id for the store context
*/ */
virtual KeyStore::Type type(int id) const = 0; virtual KeyStore::Type type(int id) const = 0;
@ -1825,12 +1873,16 @@ public:
it should persist between availability/unavailability. For it should persist between availability/unavailability. For
example, a smart card that is removed and inserted again should example, a smart card that is removed and inserted again should
have the same string id (despite having a new integer context id). have the same string id (despite having a new integer context id).
\param id the id for the store context
*/ */
virtual QString storeId(int id) const = 0; virtual QString storeId(int id) const = 0;
/** /**
Returns the friendly name of the store, or an empty string if the Returns the friendly name of the store, or an empty string if the
integer context id is invalid integer context id is invalid
\param id the id for the store context
*/ */
virtual QString name(int id) const = 0; virtual QString name(int id) const = 0;
@ -1839,6 +1891,8 @@ public:
If the integer context id is invalid, this function should return If the integer context id is invalid, this function should return
true. true.
\param id the id for the store context
*/ */
virtual bool isReadOnly(int id) const; virtual bool isReadOnly(int id) const;
@ -1848,6 +1902,8 @@ public:
This function should return all supported types, even if the store This function should return all supported types, even if the store
doesn't actually contain entries for all of the types. doesn't actually contain entries for all of the types.
\param id the id for the store context
*/ */
virtual QList<KeyStoreEntry::Type> entryTypes(int id) const = 0; virtual QList<KeyStoreEntry::Type> entryTypes(int id) const = 0;
@ -1856,6 +1912,8 @@ public:
context id is invalid context id is invalid
The caller is responsible for deleting the returned entry objects. The caller is responsible for deleting the returned entry objects.
\param id the id for the store context
*/ */
virtual QList<KeyStoreEntryContext*> entryList(int id) = 0; virtual QList<KeyStoreEntryContext*> entryList(int id) = 0;
@ -1864,6 +1922,9 @@ public:
known. If the entry does not exist, the function returns 0. known. If the entry does not exist, the function returns 0.
The caller is responsible for deleting the returned entry object. The caller is responsible for deleting the returned entry object.
\param id the id for the store context
\param entryId the entry to retrieve
*/ */
virtual KeyStoreEntryContext *entry(int id, const QString &entryId); virtual KeyStoreEntryContext *entry(int id, const QString &entryId);
@ -1876,6 +1937,8 @@ public:
The caller is responsible for deleting the returned entry object. The caller is responsible for deleting the returned entry object.
This function must be thread-safe. This function must be thread-safe.
\param serialized the serialized data to create the entry from
*/ */
virtual KeyStoreEntryContext *entryPassive(const QString &serialized); virtual KeyStoreEntryContext *entryPassive(const QString &serialized);
@ -1884,6 +1947,9 @@ public:
Returns the entry id of the new item, or an empty string if there Returns the entry id of the new item, or an empty string if there
was an error writing the item. was an error writing the item.
\param id the id for the store context
\param kb the key bundle to add to the store
*/ */
virtual QString writeEntry(int id, const KeyBundle &kb); virtual QString writeEntry(int id, const KeyBundle &kb);
@ -1892,6 +1958,9 @@ public:
Returns the entry id of the new item, or an empty string if there Returns the entry id of the new item, or an empty string if there
was an error writing the item. was an error writing the item.
\param id the id for the store context
\param cert the certificate to add to the store
*/ */
virtual QString writeEntry(int id, const Certificate &cert); virtual QString writeEntry(int id, const Certificate &cert);
@ -1900,6 +1969,9 @@ public:
Returns the entry id of the new item, or an empty string if there Returns the entry id of the new item, or an empty string if there
was an error writing the item. was an error writing the item.
\param id the id for the store context
\param crl the revocation list to add to the store
*/ */
virtual QString writeEntry(int id, const CRL &crl); virtual QString writeEntry(int id, const CRL &crl);
@ -1908,6 +1980,9 @@ public:
Returns the entry id of the new item, or an empty string if there Returns the entry id of the new item, or an empty string if there
was an error writing the item. was an error writing the item.
\param id the id for the store context
\param key the PGP key to add to the store
*/ */
virtual QString writeEntry(int id, const PGPKey &key); virtual QString writeEntry(int id, const PGPKey &key);
@ -1916,6 +1991,9 @@ public:
Returns true if the entry is successfully removed, otherwise Returns true if the entry is successfully removed, otherwise
false. false.
\param id the id for the store context
\param entryId the entry to remove from the store
*/ */
virtual bool removeEntry(int id, const QString &entryId); virtual bool removeEntry(int id, const QString &entryId);
@ -1956,12 +2034,16 @@ Q_SIGNALS:
/** /**
Emitted when there is diagnostic text to report Emitted when there is diagnostic text to report
\param str the diagnostic text
*/ */
void diagnosticText(const QString &str); void diagnosticText(const QString &str);
/** /**
Indicates that the entry list of a keystore has changed (entries Indicates that the entry list of a keystore has changed (entries
added, removed, or modified) added, removed, or modified)
\param id the id of the key store that has changed
*/ */
void storeUpdated(int id); void storeUpdated(int id);
}; };
@ -2063,6 +2145,7 @@ public:
Standard constructor Standard constructor
\param p the Provider associated with this context \param p the Provider associated with this context
\param type the name of the type of feature that supported by this context
*/ */
TLSContext(Provider *p, const QString &type) : Provider::Context(p, type) {} TLSContext(Provider *p, const QString &type) : Provider::Context(p, type) {}
@ -2100,6 +2183,10 @@ public:
This function will be called before any other configuration This function will be called before any other configuration
functions. functions.
\param serverMode whether to operate as a server (true) or client (false)
\param hostName the hostname to use
\param compress whether to compress (true) or not (false)
*/ */
virtual void setup(bool serverMode, const QString &hostName, bool compress) = 0; virtual void setup(bool serverMode, const QString &hostName, bool compress) = 0;
@ -2107,6 +2194,9 @@ public:
Set the constraints of the session using SSF values Set the constraints of the session using SSF values
This function will be called before start(). This function will be called before start().
\param minSSF the minimum strength factor that is acceptable
\param maxSSF the maximum strength factor that is acceptable
*/ */
virtual void setConstraints(int minSSF, int maxSSF) = 0; virtual void setConstraints(int minSSF, int maxSSF) = 0;
@ -2117,6 +2207,9 @@ public:
This function will be called before start(). This function will be called before start().
\param cipherSuiteList the list of cipher suites that may be used for
this session.
\sa supportedCipherSuites \sa supportedCipherSuites
*/ */
virtual void setConstraints(const QStringList &cipherSuiteList) = 0; virtual void setConstraints(const QStringList &cipherSuiteList) = 0;
@ -2125,6 +2218,8 @@ public:
Set the list of trusted certificates Set the list of trusted certificates
This function may be called at any time. This function may be called at any time.
\param trusted the trusted certificates and CRLs to be used.
*/ */
virtual void setTrustedCertificates(const CertificateCollection &trusted) = 0; virtual void setTrustedCertificates(const CertificateCollection &trusted) = 0;
@ -2134,6 +2229,8 @@ public:
This function may be called at any time. This function may be called at any time.
This function is for server mode only. This function is for server mode only.
\param issuerList the list of issuers that may be used
*/ */
virtual void setIssuerList(const QList<CertificateInfoOrdered> &issuerList) = 0; virtual void setIssuerList(const QList<CertificateInfoOrdered> &issuerList) = 0;
@ -2141,6 +2238,9 @@ public:
Set the local certificate Set the local certificate
This function may be called at any time. This function may be called at any time.
\param cert the certificate and associated trust chain
\param key the private key for the local certificate
*/ */
virtual void setCertificate(const CertificateChain &cert, const PrivateKey &key) = 0; virtual void setCertificate(const CertificateChain &cert, const PrivateKey &key) = 0;
@ -2148,6 +2248,8 @@ public:
Set the TLS session id, for session resuming Set the TLS session id, for session resuming
This function will be called before start(). This function will be called before start().
\param id the session identification
*/ */
virtual void setSessionId(const TLSSessionContext &id) = 0; virtual void setSessionId(const TLSSessionContext &id) = 0;
@ -2165,6 +2267,8 @@ public:
Set the maximum transmission unit size Set the maximum transmission unit size
This function is for DTLS only. This function is for DTLS only.
\param size the maximum number of bytes in a datagram
*/ */
virtual void setMTU(int size); virtual void setMTU(int size);
@ -2203,6 +2307,9 @@ public:
For DTLS, this function operates with single packets. Many For DTLS, this function operates with single packets. Many
update() operations must be performed repeatedly to exchange update() operations must be performed repeatedly to exchange
multiple packets. multiple packets.
\param from_net the data from the "other side" of the connection
\param from_app the data from the application of the protocol
*/ */
virtual void update(const QByteArray &from_net, const QByteArray &from_app) = 0; virtual void update(const QByteArray &from_net, const QByteArray &from_app) = 0;
@ -2396,6 +2503,10 @@ public:
This function will be called before startClient() or This function will be called before startClient() or
startServer(). startServer().
\param f the flags to use
\param minSSF the minimum strength factor that is acceptable
\param maxSSF the maximum strength factor that is acceptable
*/ */
virtual void setConstraints(SASL::AuthFlags f, int minSSF, int maxSSF) = 0; virtual void setConstraints(SASL::AuthFlags f, int minSSF, int maxSSF) = 0;
@ -2409,6 +2520,10 @@ public:
On completion, result(), mech(), haveClientInit(), and stepData() On completion, result(), mech(), haveClientInit(), and stepData()
will be valid. If result() is Success, then the session is now in will be valid. If result() is Success, then the session is now in
the connected state. the connected state.
\param mechlist the list of mechanisms
\param allowClientSendFirst whether the client sends first (true) or the server
sends first (false)
*/ */
virtual void startClient(const QStringList &mechlist, bool allowClientSendFirst) = 0; virtual void startClient(const QStringList &mechlist, bool allowClientSendFirst) = 0;
@ -2422,6 +2537,10 @@ public:
On completion, result() and mechlist() will be valid. The On completion, result() and mechlist() will be valid. The
result() function will return Success or Error. If the result is result() function will return Success or Error. If the result is
Success, then serverFirstStep() will be called next. Success, then serverFirstStep() will be called next.
\param realm the realm to authenticate in
\param disableServerSendLast whether the client sends first (true) or the server
sends first (false)
*/ */
virtual void startServer(const QString &realm, bool disableServerSendLast) = 0; virtual void startServer(const QString &realm, bool disableServerSendLast) = 0;
@ -2433,6 +2552,8 @@ public:
On completion, result() and stepData() will be valid. If result() On completion, result() and stepData() will be valid. If result()
is Success, then the session is now in the connected state. is Success, then the session is now in the connected state.
\param mech the mechanism to use
*/ */
virtual void serverFirstStep(const QString &mech, const QByteArray *clientInit) = 0; virtual void serverFirstStep(const QString &mech, const QByteArray *clientInit) = 0;
@ -2443,6 +2564,9 @@ public:
the resultsReady() signal. the resultsReady() signal.
On completion, result() and stepData() will be valid. On completion, result() and stepData() will be valid.
\param from_net the data from the "other side" of the protocol
to be used for the next step.
*/ */
virtual void nextStep(const QByteArray &from_net) = 0; virtual void nextStep(const QByteArray &from_net) = 0;
@ -2465,6 +2589,9 @@ public:
On completion, result(), to_net(), encoded(), and to_app() will be On completion, result(), to_net(), encoded(), and to_app() will be
valid. The result() function will return Success or Error. valid. The result() function will return Success or Error.
\param from_net the data from the "other side" of the protocol
\param from_app the data from the application of the protocol
*/ */
virtual void update(const QByteArray &from_net, const QByteArray &from_app) = 0; virtual void update(const QByteArray &from_net, const QByteArray &from_app) = 0;
@ -2548,6 +2675,11 @@ public:
/** /**
Set some of the client parameters (pass 0 to not set a field) Set some of the client parameters (pass 0 to not set a field)
\param user the user name
\param authzid the authorization name / role
\param pass the password
\param realm the realm to authenticate in
*/ */
virtual void setClientParams(const QString *user, const QString *authzid, const SecureArray *pass, const QString *realm) = 0; virtual void setClientParams(const QString *user, const QString *authzid, const SecureArray *pass, const QString *realm) = 0;
@ -2641,6 +2773,11 @@ public:
/** /**
Configure a new signing operation Configure a new signing operation
\param keys the keys to use for signing
\param m the mode to sign in
\param bundleSigner whether to bundle the signing keys (true) or not (false)
\param smime whether to use smime format (true) or not (false)
*/ */
virtual void setupSign(const SecureMessageKeyList &keys, SecureMessage::SignMode m, bool bundleSigner, bool smime) = 0; virtual void setupSign(const SecureMessageKeyList &keys, SecureMessage::SignMode m, bool bundleSigner, bool smime) = 0;
@ -2660,11 +2797,16 @@ public:
repeatedly) afterwards. Emit updated() if there is data to repeatedly) afterwards. Emit updated() if there is data to
read, if input data has been accepted, or if the operation has read, if input data has been accepted, or if the operation has
finished. finished.
\param f the format of the message to be produced
\param op the operation to be performed
*/ */
virtual void start(SecureMessage::Format f, Operation op) = 0; virtual void start(SecureMessage::Format f, Operation op) = 0;
/** /**
Provide input to the message operation Provide input to the message operation
\param in the data to use for the message operation
*/ */
virtual void update(const QByteArray &in) = 0; virtual void update(const QByteArray &in) = 0;

View File

@ -230,6 +230,8 @@ public:
/** /**
Standard constructor Standard constructor
\param parent the parent object for this object
*/ */
QPipeEnd(QObject *parent = 0); QPipeEnd(QObject *parent = 0);