ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/util.h
(Generate patch)

Comparing gvpe/src/util.h (file contents):
Revision 1.8 by pcg, Thu Oct 16 02:28:36 2003 UTC vs.
Revision 1.12 by pcg, Mon May 10 20:13:10 2004 UTC

1/* 1/*
2 util.h -- process management and other utility functions 2 util.h -- process management and other utility functions
3 Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl> 3 Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl>
4 2000-2002 Guus Sliepen <guus@sliepen.eu.org> 4 2000-2002 Guus Sliepen <guus@sliepen.eu.org>
5 2003 Marc Lehmannn <pcg@goof.com> 5 2003 Marc Lehmann <pcg@goof.com>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
20*/ 20*/
21 21
22#ifndef UTIL_H__ 22#ifndef UTIL_H__
23#define UTIL_H__ 23#define UTIL_H__
24 24
25#include <openssl/rsa.h>
26
27#include "gettext.h"
28
29#include "slog.h"
25#include "iom.h" 30#include "iom.h"
26#include "device.h"
27 31
28/* 32/*
29 * check for an existing vped for this net, and write pid to pidfile 33 * check for an existing vped for this net, and write pid to pidfile
30 */ 34 */
31extern int write_pidfile (void); 35extern int write_pidfile (void);
39 * Detach from current terminal, write pidfile, kill parent 43 * Detach from current terminal, write pidfile, kill parent
40 */ 44 */
41extern int detach (int do_detach); 45extern int detach (int do_detach);
42 46
43/* 47/*
44 * Set all files and paths according to netname
45 */
46extern void make_names (void);
47
48/*
49 * check wether the given path is an absolute pathname 48 * check wether the given path is an absolute pathname
50 */ 49 */
51#define ABSOLUTE_PATH(c) ((c)[0] == '/') 50#define ABSOLUTE_PATH(c) ((c)[0] == '/')
51
52/*****************************************************************************/
53
54typedef u8 mac[6];
52 55
53extern void id2mac (unsigned int id, void *m); 56extern void id2mac (unsigned int id, void *m);
54 57
55#define mac2id(p) ((p)[0] & 0x01 ? 0 : ((p)[4] << 8) | (p)[5]) 58#define mac2id(p) ((p)[0] & 0x01 ? 0 : ((p)[4] << 8) | (p)[5])
56 59
111 114
112#if ENABLE_HTTP_PROXY 115#if ENABLE_HTTP_PROXY
113u8 *base64_encode (const u8 *data, unsigned int len); 116u8 *base64_encode (const u8 *data, unsigned int len);
114#endif 117#endif
115 118
119/*****************************************************************************/
120
121typedef u8 rsaclear[RSA_KEYLEN - RSA_OVERHEAD]; // challenge data;
122typedef u8 rsacrypt[RSA_KEYLEN]; // encrypted challenge
123
124static inline void
125rsa_encrypt (RSA *key, const rsaclear &chg, rsacrypt &encr)
126{
127 if (RSA_public_encrypt (sizeof chg,
128 (unsigned char *)&chg, (unsigned char *)&encr,
129 key, RSA_PKCS1_OAEP_PADDING) < 0)
130 fatal ("RSA_public_encrypt error");
131}
132
133static inline bool
134rsa_decrypt (RSA *key, const rsacrypt &encr, rsaclear &chg)
135{
136 return RSA_private_decrypt (sizeof encr,
137 (unsigned char *)&encr, (unsigned char *)&chg,
138 key, RSA_PKCS1_OAEP_PADDING) > 0;
139}
140
116#endif 141#endif
117 142

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines