source: creddy/creddy.h @ 46bd849

abac0-leakabac0-meicompt_changesgec13mei-idmei-rt0-nmei_rt0mei_rt2mei_rt2_fix_1meiyap-rt1meiyap1rt2tvf-new-xml
Last change on this file since 46bd849 was 980a7b6, checked in by Mike Ryan <mikeryan@…>, 14 years ago

intersection support in creddy

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[abd7c25]1#ifndef __CREDDY_H__
2#define __CREDDY_H__
3
[fd0febd]4#include <library.h>
5#include <credentials/certificates/certificate.h>
6#include <credentials/certificates/x509.h>
7
[980a7b6]8typedef struct _subject_t {
9    char *cert;
10    char *id;
11    char *role;
12} subject_t;
13
[abd7c25]14typedef struct _options_t {
15    int help;
16    int mode;
17
[fd0febd]18    char *cert;
19
[abd7c25]20    // generate options
21    char *cn;
22    int validity;
[085f159]23
24    // attribute options
25    char *issuer;
26    char *key;
27    char *role;
[980a7b6]28    subject_t *subjects;
29    int num_subjects;
[085f159]30    char *out;
[784a398]31
32    // verify options
33    char *attrcert;
[abd7c25]34} options_t;
35
36#define MODE_GENERATE   1
37#define MODE_VERIFY     2
38#define MODE_KEYID      3
39#define MODE_ATTRIBUTE  4
40#define MODE_ROLES      5
[19be896]41#define MODE_VERSION    6
[abd7c25]42
43// returns true if a name starts with a letter and is otherwise alphanumeric
44int clean_name(char *string);
45
[784a398]46// load an ID/attr cert from file (aborts on fail)
[fd0febd]47certificate_t *cert_from_file(char *filename);
[784a398]48certificate_t *attr_cert_from_file(char *filename);
[fd0febd]49
50// get the keyid from a cert (free result when done)
51char *cert_keyid(certificate_t *cert);
52
[085f159]53// generate a random serial
54chunk_t generate_serial();
55
[abd7c25]56void usage(options_t *opts);
57void *xmalloc(size_t len);
[980a7b6]58void *xrealloc(void *ptr, size_t size);
[abd7c25]59char *xstrdup(char *string);
60
61// sub programs
62void generate_main(options_t *opts);
[fd0febd]63void keyid_main(options_t *opts);
[085f159]64void attribute_main(options_t *opts);
[9410b51]65void roles_main(options_t *opts);
[784a398]66void verify_main(options_t *opts);
[abd7c25]67
[a0772a2]68#define CREDDY_SUCCESS                      0
69#define CREDDY_GENERATE_INVALID_CN          -1
70#define CREDDY_GENERATE_INVALID_VALIDITY    -2
71
72/**
73 * Generate an ID cert / private key pair. Returns one of the error
74 * codes above. Validity is in days. Output is in ${cn}_ID.pem and
75 * ${cn}_private.der.
76 */
77int creddy_generate(char *cn, int validity);
78
[abd7c25]79#endif /* __CREDDY_H__ */
Note: See TracBrowser for help on using the repository browser.