Rudiments
gss.h
1 // Copyright (c) 1999-2018 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_GSS_H
5 #define RUDIMENTS_GSS_H
6 
7 #include <rudiments/private/gssincludes.h>
8 
9 class RUDIMENTS_DLLSPEC gss {
10  public:
12  gss();
13 
15  ~gss();
16 
31  const char * const *getAvailableMechanisms();
32 
35  static bool supported();
36 
37  #include <rudiments/private/gss.h>
38 };
39 
40 
41 class RUDIMENTS_DLLSPEC gssmechanism {
42  public:
45 
48 
53  bool initialize(const char *str);
54 
60  bool initialize(const void *oid);
61 
63  void clear();
64 
68  const char *getString();
69 
74  const void *getObjectId();
75 
76  #include <rudiments/private/gssmechanism.h>
77 };
78 
79 
80 class RUDIMENTS_DLLSPEC gsscredentials {
81  public:
84 
87 
90  bool setKeytab(const char *keytab);
91 
94  const char *getKeytab();
95 
100  void setDesiredLifetime(uint32_t desiredlifetime);
101 
106  uint32_t getDesiredLifetime();
107 
112 
117 
123 
128 
133 
138 
139 
142  bool acquireForService(const char *name);
143 
146  bool acquireForUser(const char *name);
147 
148 
151  bool acquired();
152 
153 
155  void close();
156 
157 
162  const char *getName();
163 
169  uint32_t getActualLifetime();
170 
176 
183 
190 
191 
194  uint32_t getMajorStatus();
195 
198  uint32_t getMinorStatus();
199 
202  const char *getStatus();
203 
206  const char *getGSSMajorStatus();
207 
210  const char *getGSSMinorStatus();
211 
214  const char *getMechanismMajorStatus();
215 
218  const char *getMechanismMinorStatus();
219 
220 
224  const void *getCredentials();
225 
226  #include <rudiments/private/gsscredentials.h>
227 };
228 
229 
230 class RUDIMENTS_DLLSPEC gsscontext : public securitycontext {
231  public:
234 
236  virtual ~gsscontext();
237 
240  void setCredentials(gsscredentials *credentials);
241 
245 
260 
265 
270  void setDesiredLifetime(uint32_t desiredlifetime);
271 
276  uint32_t getDesiredLifetime();
277 
280  void setDesiredMechanism(gssmechanism *desiredmechanism);
281 
286 
289  void setDesiredFlags(uint32_t desiredflags);
290 
293  void setDesiredFlags(const char *desiredflags);
294 
297  uint32_t getDesiredFlags();
298 
301  void setService(const char *service);
302 
305  const char *getService();
306 
307 
318  bool connect();
319 
320 
331  bool accept();
332 
333 
340  uint32_t getActualLifetime();
341 
347 
352  uint32_t getActualFlags();
353 
356 
357 
360  const char *getInitiator();
361 
364  const char *getAcceptor();
365 
366 
370 
373  bool getIsOpen();
374 
375 
381  bool wrap(const unsigned char *input,
382  size_t inputsize,
383  unsigned char **output,
384  size_t *outputsize);
385 
393  bool wrap(const unsigned char *input,
394  size_t inputsize,
395  bool useencryption,
396  unsigned char **output,
397  size_t *outputsize,
398  bool *encryptionused);
399 
400 
406  bool unwrap(const unsigned char *input,
407  size_t inputsize,
408  unsigned char **output,
409  size_t *outputsize);
410 
417  bool unwrap(const unsigned char *input,
418  size_t inputsize,
419  unsigned char **output,
420  size_t *outputsize,
421  bool *decryptionused);
422 
423 
429  bool getMic(const unsigned char *message,
430  size_t messagesize,
431  unsigned char **mic,
432  size_t *micsize);
433 
438  bool verifyMic(const unsigned char *message,
439  size_t messagesize,
440  const unsigned char *mic,
441  size_t micsize);
442 
443 
449  ssize_t read(void *buf, ssize_t size);
450 
456  ssize_t write(const void *buf, ssize_t size);
457 
460  ssize_t pending();
461 
462 
465  bool close();
466 
467 
470  ssize_t getSizeMax();
471 
472 
475  uint32_t getMajorStatus();
476 
479  uint32_t getMinorStatus();
480 
483  const char *getStatus();
484 
487  const char *getGSSMajorStatus();
488 
491  const char *getGSSMinorStatus();
492 
495  const char *getMechanismMajorStatus();
496 
499  const char *getMechanismMinorStatus();
500 
501  #include <rudiments/private/gsscontext.h>
502 };
503 
504 #endif
Definition: filedescriptor.h:13
Definition: gss.h:9
~gss()
const char *const * getAvailableMechanisms()
static bool supported()
Definition: gss.h:230
ssize_t write(const void *buf, ssize_t size)
const char * getStatus()
const char * getService()
bool verifyMic(const unsigned char *message, size_t messagesize, const unsigned char *mic, size_t micsize)
gssmechanism * getDesiredMechanism()
bool getIsOpen()
void setDesiredFlags(uint32_t desiredflags)
bool wrap(const unsigned char *input, size_t inputsize, unsigned char **output, size_t *outputsize)
const char * getGSSMinorStatus()
ssize_t pending()
bool close()
bool connect()
filedescriptor * getFileDescriptor()
void setDesiredMechanism(gssmechanism *desiredmechanism)
uint32_t getDesiredLifetime()
uint32_t getActualFlags()
gsscredentials * getCredentials()
void setService(const char *service)
ssize_t getSizeMax()
bool getMic(const unsigned char *message, size_t messagesize, unsigned char **mic, size_t *micsize)
bool getIsInitiator()
bool unwrap(const unsigned char *input, size_t inputsize, unsigned char **output, size_t *outputsize)
virtual ~gsscontext()
bool accept()
const char * getGSSMajorStatus()
void setCredentials(gsscredentials *credentials)
ssize_t read(void *buf, ssize_t size)
bool unwrap(const unsigned char *input, size_t inputsize, unsigned char **output, size_t *outputsize, bool *decryptionused)
uint32_t getDesiredFlags()
uint32_t getRemainingLifetime()
const char * getInitiator()
const char * getMechanismMinorStatus()
void setDesiredLifetime(uint32_t desiredlifetime)
const char * getMechanismMajorStatus()
void setFileDescriptor(filedescriptor *fd)
void setDesiredFlags(const char *desiredflags)
uint32_t getMinorStatus()
uint32_t getActualLifetime()
const char * getAcceptor()
uint32_t getMajorStatus()
bool wrap(const unsigned char *input, size_t inputsize, bool useencryption, unsigned char **output, size_t *outputsize, bool *encryptionused)
gssmechanism * getActualMechanism()
Definition: gss.h:80
bool acquireForService(const char *name)
uint32_t getActualLifetime()
const char * getMechanismMinorStatus()
bool inDesiredMechanisms(gssmechanism *mech)
const char * getKeytab()
void removeDesiredMechanism(gssmechanism *mech)
uint64_t getDesiredMechanismCount()
const char * getGSSMajorStatus()
void clearDesiredMechanisms()
void addDesiredMechanism(gssmechanism *mech)
const void * getCredentials()
gssmechanism * getDesiredMechanism(uint64_t index)
bool acquireForUser(const char *name)
void setDesiredLifetime(uint32_t desiredlifetime)
const char * getName()
bool inActualMechanisms(gssmechanism *mech)
const char * getMechanismMajorStatus()
const char * getGSSMinorStatus()
gssmechanism * getActualMechanism(uint64_t index)
uint32_t getDesiredLifetime()
uint32_t getMajorStatus()
bool setKeytab(const char *keytab)
uint64_t getActualMechanismCount()
const char * getStatus()
uint32_t getMinorStatus()
Definition: gss.h:41
bool initialize(const char *str)
bool initialize(const void *oid)
const void * getObjectId()
const char * getString()
Definition: input.h:9
Definition: output.h:9
Definition: security.h:16