MINI MINI MANI MO
/*
* $ gsdsy.h Release 12.2.1.3.0 $
*/
/* Copyright (c) 1987, 2017, Oracle and/or its affiliates.
All rights reserved.*/
/* NAME
gsdsy.h
FUNCTION
Header file for cyptographic functions.
NOTES
Uses DES. Currently these routines are only used for password
encrypting. See lpwe.c.
MODIFIED
*/
#ifndef GSDSY_H
#define GSDSY_H
/* PUBLIC CONSTANTS */
#define DSYKSL (2*16) /* Number of ub4s in key schedule. */
/* PUBLIC FUNCTIONS */
/* Compute checksum of buffer using cipher block chaining.
* bufl must be a multiple of two.
* ichksum is the starting value for the checksum. For example,
* it could be the result of checksumming the previous block.
* ochksum is the result from this block including ichksum.
*/
void dsychk(/*_ ub4 *ks, ub4 *buf, word bufl,
ub4 *ichksum, ub4 *ochksum _*/);
/* Electronic code book.
* It's ok for in = out.
*/
void dsyecb(/*_ ub4 *ks, ub4 *in, ub4 *out _*/);
/* Generate key schedule.
* If encrypt is false generate key schedule for decryption.
* For DES the only difference between encryption and decryption
* is the order in which keys are passed to the 16 rounds.
*/
void dsygks(/*_ ub4 *key, ub4 *ks, bool encrypt _*/);
/* Convert 16 char hex string (null terminated) to two ub4s.
*/
void dsyhtl(/*_ CONST text *hex, ub4 *out _*/);
/* Convert two ub4s to 16 char hex string (null terminated).
*/
void dsylth(/*_ ub4 *in, text *hex _*/);
/* PRIVATE FUNCTIONS. */
/* Convert two ub4s to bytes, one bit per byte.
*/
void dsyltb(/*_ ub4 *in, ub1 *out _*/);
/* Convert bytes, one bit per byte, to two ub4s.
*/
void dsybtl(/*_ ub1 *in, ub4 *out _*/);
/* Do split of 64 bits into two 32 bit reps.
*/
void dsydlr(/*_ ub1 *in, ub1 *left, ub1 *right _*/);
/* Undo split of 64 bits into two 32 bit reps.
*/
void dsyulr(/*_ ub1 *left, ub1 *right, ub1 *out _*/);
/* Swap two 32 bit values.
*/
void dsyswp(/*_ ub1 *x, ub1 *y _*/);
/* XOR n bits. z = x xor y.
*/
void dsyxor(/*_ word n, ub1 *x, ub1 *y, ub1 *z _*/);
/* Rotate 28 bit value by 1 bit position.
*/
void dsyrot(/*_ ub1 *value _*/);
/* Print n bits of value.
*/
void dsypbv(/*_ word n, ub1 *value _*/);
/* Do IP
*/
void dsydip(/*_ ub1 *in, ub1 *out _*/);
/* Undo IP
*/
void dsyuip(/*_ ub1 *in, ub1 *out _*/);
/* Do E expansion.
*/
void dsyde(/*_ ub1 *in, ub1 *out _*/);
/* Do S-box lookup.
*/
void dsydsb(/*_ ub1 *in, ub1 *out _*/);
/* Lookup for single S-box.
*/
void dsysbl(/*_ word box, ub1 *in, ub1 *out _*/);
/* Do P permutation.
*/
void dsydp(/*_ ub1 *in, ub1 *out _*/);
/* Do PC1 for C
*/
void dsyc1c(/*_ ub1 *in, ub1 *out _*/);
/* Do PC1 for D
*/
void dsyc1d(/*_ ub1 *in, ub1 *out _*/);
/* Do PC2 for C
*/
void dsyc2c(/*_ ub1 *in, ub1 *out _*/);
/* Do PC2 for D
*/
void dsyc2d(/*_ ub1 *in, ub1 *out _*/);
/*
the following two function's definition is nowhere to be found
neither has it been invoked anywhere. That's why, commenting
it out in order to take care of Olint errors.
*/
#ifdef NEVER
ub4 gsddes(/*_ gsdsi * context, text *in, size_t size, text *out, size_t *outsize,
bool encrypt _*/);
#endif
#endif /* GSDSY_H */
OHA YOOOO