#include "fcrypt.h"
#include "rx/rx.h"
+/* Don't include des.h where it can cause conflict with krb4 headers */
+#if !defined(NO_DES_H_INCLUDE)
+#include <des.h>
+#endif
+
/* domestic/crypt_conn.c */
extern afs_int32 rxkad_DecryptPacket(const struct rx_connection *conn,
const fc_KeySchedule * schedule,
extern int fc_keysched(struct ktc_encryptionKey *key,
fc_KeySchedule schedule);
extern afs_int32 fc_ecb_encrypt(void * clear, void * cipher,
- fc_KeySchedule schedule, int encrypt);
+ const fc_KeySchedule schedule, int encrypt);
extern afs_int32 fc_cbc_encrypt(void *input, void *output, afs_int32 length,
- fc_KeySchedule key, afs_uint32 * xor,
+ const fc_KeySchedule key, afs_uint32 * iv,
int encrypt);
/* rxkad_client.c */
extern void rxkad_ResetState(void);
/* rxkad_common.c */
-#if 0
-/* can't prototype these due to types */
+struct rxkad_endpoint;
extern int rxkad_SetupEndpoint(struct rx_connection *aconnp,
struct rxkad_endpoint *aendpointp);
+struct rxkad_v2ChallengeResponse;
extern afs_uint32 rxkad_CksumChallengeResponse(struct
rxkad_v2ChallengeResponse
*v2r);
-#endif
extern int rxkad_DeriveXORInfo(struct rx_connection *aconnp,
fc_KeySchedule * aschedule, char *aivec,
char *aresult);
extern rxkad_level rxkad_StringToLevel(char *string);
extern char *rxkad_LevelToString(rxkad_level level);
+extern void rxkad_global_stats_init(void);
/* rxkad_errs.c */
/* rxkad_server.c */
extern struct rx_securityClass *rxkad_NewServerSecurityObject(rxkad_level
- level, char
+ level, void
*get_key_rock,
int (*get_key)
- (char
+ (void
*get_key_rock,
int kvno,
struct
afs_uint32 * expiration, char *name,
char *instance, char *cell,
afs_int32 * kvno);
-
-
+extern afs_int32 rxkad_SetConfiguration(struct rx_securityClass *aobj,
+ struct rx_connection *aconn,
+ rx_securityConfigVariables atype,
+ void * avalue, void **aresult);
/* ticket.c */
extern int tkt_DecodeTicket(char *asecret, afs_int32 ticketLen,
struct ktc_encryptionKey *key, char *name,
- char *inst, char *cell, char *sessionKey,
- afs_int32 * host, afs_int32 * start,
- afs_int32 * end);
+ char *inst, char *cell, struct ktc_encryptionKey *sessionKey,
+ afs_int32 * host, afs_uint32 * start,
+ afs_uint32 * end);
extern int tkt_MakeTicket(char *ticket, int *ticketLen,
struct ktc_encryptionKey *key, char *name,
char *inst, char *cell, afs_uint32 start,
/* ticket5.c */
extern int tkt_DecodeTicket5(char *ticket, afs_int32 ticket_len,
- int (*get_key) (char *, int,
+ int (*get_key) (void *, int,
struct ktc_encryptionKey *),
char *get_key_rock, int serv_kvno, char *name,
- char *inst, char *cell, char *session_key,
- afs_int32 * host, afs_int32 * start,
- afs_int32 * end);
+ char *inst, char *cell, struct ktc_encryptionKey *session_key,
+ afs_int32 * host, afs_uint32 * start,
+ afs_uint32 * end, afs_int32 disableDotCheck);
+
+#if !defined(NO_DES_H_INCLUDE)
+static_inline unsigned char *
+ktc_to_cblock(struct ktc_encryptionKey *key) {
+ return (unsigned char *)key;
+}
+
+static_inline des_cblock *
+ktc_to_cblockptr(struct ktc_encryptionKey *key) {
+ return (des_cblock *)key;
+}
+#endif
+
#endif