/usr/include/gpgme++/context.h is in kdepimlibs5-dev 4:4.13.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | /*
context.h - wraps a gpgme key context
Copyright (C) 2003, 2007 Klarälvdalens Datakonsult AB
This file is part of GPGME++.
GPGME++ is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
GPGME++ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with GPGME++; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
// -*- c++ -*-
#ifndef __GPGMEPP_CONTEXT_H__
#define __GPGMEPP_CONTEXT_H__
#include <gpgme++/global.h>
#include <gpgme++/error.h>
#include <gpgme++/verificationresult.h> // for Signature::Notation
#include <memory>
#include <vector>
#include <utility>
#include <iosfwd>
namespace GpgME {
class Key;
class Data;
class TrustItem;
class ProgressProvider;
class PassphraseProvider;
class EventLoopInteractor;
class EditInteractor;
class AssuanTransaction;
class AssuanResult;
class KeyListResult;
class KeyGenerationResult;
class ImportResult;
class DecryptionResult;
class VerificationResult;
class SigningResult;
class EncryptionResult;
class VfsMountResult;
class EngineInfo;
class GPGMEPP_EXPORT Context {
explicit Context( gpgme_ctx_t );
public:
//using GpgME::Protocol;
//
// Creation and destruction:
//
static Context * createForProtocol( Protocol proto );
static std::auto_ptr<Context> createForEngine( Engine engine, Error * err=0 );
virtual ~Context();
//
// Context Attributes
//
Protocol protocol() const;
void setArmor( bool useArmor );
bool armor() const;
void setTextMode( bool useTextMode );
bool textMode() const;
enum CertificateInclusion {
DefaultCertificates = -256,
AllCertificatesExceptRoot = -2,
AllCertificates = -1,
NoCertificates = 0,
OnlySenderCertificate = 1
};
void setIncludeCertificates( int which );
int includeCertificates() const;
//using GpgME::KeyListMode;
void setKeyListMode( unsigned int keyListMode );
void addKeyListMode( unsigned int keyListMode );
unsigned int keyListMode() const;
void setPassphraseProvider( PassphraseProvider * provider );
PassphraseProvider * passphraseProvider() const;
void setProgressProvider( ProgressProvider * provider );
ProgressProvider * progressProvider() const;
void setManagedByEventLoopInteractor( bool managed );
bool managedByEventLoopInteractor() const;
GpgME::Error setLocale( int category, const char * value );
EngineInfo engineInfo() const;
GpgME::Error setEngineFileName( const char * filename );
GpgME::Error setEngineHomeDirectory( const char * filename );
private:
friend class ::GpgME::EventLoopInteractor;
void installIOCallbacks( gpgme_io_cbs * iocbs );
void uninstallIOCallbacks();
public:
//
//
// Key Management
//
//
//
// Key Listing
//
GpgME::Error startKeyListing( const char * pattern=0, bool secretOnly=false );
GpgME::Error startKeyListing( const char * patterns[], bool secretOnly=false );
Key nextKey( GpgME::Error & e );
KeyListResult endKeyListing();
KeyListResult keyListResult() const;
Key key( const char * fingerprint, GpgME::Error & e, bool secret=false );
//
// Key Generation
//
KeyGenerationResult generateKey( const char * parameters, Data & pubKey );
GpgME::Error startKeyGeneration( const char * parameters, Data & pubkey );
KeyGenerationResult keyGenerationResult() const;
//
// Key Export
//
GpgME::Error exportPublicKeys( const char * pattern, Data & keyData );
GpgME::Error exportPublicKeys( const char * pattern[], Data & keyData );
GpgME::Error startPublicKeyExport( const char * pattern, Data & keyData );
GpgME::Error startPublicKeyExport( const char * pattern[], Data & keyData );
//
// Key Import
//
ImportResult importKeys( const Data & data );
ImportResult importKeys( const std::vector<Key> & keys );
GpgME::Error startKeyImport( const Data & data );
GpgME::Error startKeyImport( const std::vector<Key> & keys );
ImportResult importResult() const;
//
// Key Deletion
//
GpgME::Error deleteKey( const Key & key, bool allowSecretKeyDeletion=false );
GpgME::Error startKeyDeletion( const Key & key, bool allowSecretKeyDeletion=false );
//
// Passphrase changing
//
GpgME::Error passwd( const Key & key );
GpgME::Error startPasswd( const Key & key );
//
// Key Editing
//
GpgME::Error edit( const Key & key, std::auto_ptr<EditInteractor> function, Data & out );
GpgME::Error startEditing( const Key & key, std::auto_ptr<EditInteractor> function, Data & out );
EditInteractor * lastEditInteractor() const;
std::auto_ptr<EditInteractor> takeLastEditInteractor();
//
// SmartCard Editing
//
GpgME::Error cardEdit( const Key & key, std::auto_ptr<EditInteractor> function, Data & out );
GpgME::Error startCardEditing( const Key & key, std::auto_ptr<EditInteractor> function, Data & out );
EditInteractor * lastCardEditInteractor() const;
std::auto_ptr<EditInteractor> takeLastCardEditInteractor();
//
// Trust Item Management
//
GpgME::Error startTrustItemListing( const char * pattern, int maxLevel );
TrustItem nextTrustItem( GpgME::Error & e );
GpgME::Error endTrustItemListing();
//
// Assuan Transactions
//
AssuanResult assuanTransact( const char * command, std::auto_ptr<AssuanTransaction> transaction );
AssuanResult assuanTransact( const char * command );
GpgME::Error startAssuanTransaction( const char * command, std::auto_ptr<AssuanTransaction> transaction );
GpgME::Error startAssuanTransaction( const char * command );
AssuanResult assuanResult() const;
AssuanTransaction * lastAssuanTransaction() const;
std::auto_ptr<AssuanTransaction> takeLastAssuanTransaction();
//
//
// Crypto Operations
//
//
//
// Decryption
//
DecryptionResult decrypt( const Data & cipherText, Data & plainText );
GpgME::Error startDecryption( const Data & cipherText, Data & plainText );
DecryptionResult decryptionResult() const;
//
// Signature Verification
//
VerificationResult verifyDetachedSignature( const Data & signature, const Data & signedText );
VerificationResult verifyOpaqueSignature( const Data & signedData, Data & plainText );
GpgME::Error startDetachedSignatureVerification( const Data & signature, const Data & signedText );
GpgME::Error startOpaqueSignatureVerification( const Data & signedData, Data & plainText );
VerificationResult verificationResult() const;
//
// Combined Decryption and Signature Verification
//
std::pair<DecryptionResult,VerificationResult> decryptAndVerify( const Data & cipherText, Data & plainText );
GpgME::Error startCombinedDecryptionAndVerification( const Data & cipherText, Data & plainText );
// use verificationResult() and decryptionResult() to retrieve the result objects...
//
// Signing
//
void clearSigningKeys();
GpgME::Error addSigningKey( const Key & signer );
Key signingKey( unsigned int index ) const;
std::vector<Key> signingKeys() const;
void clearSignatureNotations();
GpgME::Error addSignatureNotation( const char * name, const char * value, unsigned int flags=0 );
GpgME::Error addSignaturePolicyURL( const char * url, bool critical=false );
const char * signaturePolicyURL() const;
Notation signatureNotation( unsigned int index ) const;
std::vector<Notation> signatureNotations() const;
//using GpgME::SignatureMode;
SigningResult sign( const Data & plainText, Data & signature, SignatureMode mode );
GpgME::Error startSigning( const Data & plainText, Data & signature, SignatureMode mode );
SigningResult signingResult() const;
//
// Encryption
//
enum EncryptionFlags { None=0, AlwaysTrust=1, NoEncryptTo=2 };
EncryptionResult encrypt( const std::vector<Key> & recipients, const Data & plainText, Data & cipherText, EncryptionFlags flags );
GpgME::Error encryptSymmetrically( const Data & plainText, Data & cipherText );
GpgME::Error startEncryption( const std::vector<Key> & recipients, const Data & plainText, Data & cipherText, EncryptionFlags flags );
EncryptionResult encryptionResult() const;
//
// Combined Signing and Encryption
//
std::pair<SigningResult,EncryptionResult> signAndEncrypt( const std::vector<Key> & recipients, const Data & plainText, Data & cipherText, EncryptionFlags flags );
GpgME::Error startCombinedSigningAndEncryption( const std::vector<Key> & recipients, const Data & plainText, Data & cipherText, EncryptionFlags flags );
// use encryptionResult() and signingResult() to retrieve the result objects...
//
//
// Audit Log
//
//
enum AuditLogFlags {
HtmlAuditLog = 1,
AuditLogWithHelp = 128
};
GpgME::Error startGetAuditLog( Data & output, unsigned int flags=0 );
GpgME::Error getAuditLog( Data & output, unsigned int flags=0 );
//
//
// G13 crypto container operations
//
//
GpgME::Error createVFS( const char *containerFile, const std::vector<Key> &recipients );
VfsMountResult mountVFS( const char *containerFile, const char *mountDir );
//
//
// Run Control
//
//
bool poll();
GpgME::Error wait();
GpgME::Error lastError() const;
GpgME::Error cancelPendingOperation();
class Private;
const Private * impl() const { return d; }
Private * impl() { return d; }
private:
Private * const d;
private: // disable...
Context( const Context & );
const Context & operator=( const Context & );
};
GPGMEPP_EXPORT std::ostream & operator<<( std::ostream & os, Context::CertificateInclusion incl );
GPGMEPP_EXPORT std::ostream & operator<<( std::ostream & os, Context::EncryptionFlags flags );
GPGMEPP_EXPORT std::ostream & operator<<( std::ostream & os, Context::AuditLogFlags flags );
} // namespace GpgME
#endif // __GPGMEPP_CONTEXT_H__
|