1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
/* CRYPTO.C (c) Copyright Jan Jaeger, 2000-2010 */
/* Cryptographic instructions */
// $Id: crypto.c 5571 2009-12-29 13:13:01Z bernard $
//
// $Log$
// Revision 1.14 2007/06/23 00:04:05 ivan
// Update copyright notices to include current year (2007)
//
// Revision 1.13 2006/12/08 09:43:19 jj
// Add CVS message log
//
#include "hstdinc.h"
#define _CRYPTO_C_
#define _HENGINE_DLL_
#include "hercules.h"
#if defined(FEATURE_MESSAGE_SECURITY_ASSIST)
#include "opcode.h"
#define CRYPTO_EXTERN
#include "crypto.h"
/*----------------------------------------------------------------------------*/
/* B92E KM - Cipher Message [RRE] */
/*----------------------------------------------------------------------------*/
DEF_INST(cipher_message_r)
{
if( ARCH_DEP(cipher_message) )
ARCH_DEP(cipher_message) (inst, regs);
else
{
int r1, r2; /* register values */
RRE(inst, regs, r1, r2);
ARCH_DEP(program_interrupt) (regs, PGM_OPERATION_EXCEPTION);
}
}
/*----------------------------------------------------------------------------*/
/* B92F KMC - Cipher Message with Chaining [RRE] */
/*----------------------------------------------------------------------------*/
DEF_INST(cipher_message_with_chaining_r)
{
if( ARCH_DEP(cipher_message_with_chaining) )
ARCH_DEP(cipher_message_with_chaining) (inst, regs);
else
{
int r1, r2; /* register values */
RRE(inst, regs, r1, r2);
ARCH_DEP(program_interrupt) (regs, PGM_OPERATION_EXCEPTION);
}
}
/*----------------------------------------------------------------------------*/
/* B93E/B93F KIMD/KLMD - Compute Intermediate/Last Message Digest [RRE] */
/*----------------------------------------------------------------------------*/
DEF_INST(compute_message_digest_r)
{
if( ARCH_DEP(compute_message_digest) )
ARCH_DEP(compute_message_digest) (inst, regs);
else
{
int r1, r2; /* register values */
RRE(inst, regs, r1, r2);
ARCH_DEP(program_interrupt) (regs, PGM_OPERATION_EXCEPTION);
}
}
/*----------------------------------------------------------------------------*/
/* B91E KMAC - Compute Message Authentication Code [RRE] */
/*----------------------------------------------------------------------------*/
DEF_INST(compute_message_authentication_code_r)
{
if( ARCH_DEP(compute_message_authentication_code) )
ARCH_DEP(compute_message_authentication_code) (inst, regs);
else
{
int r1, r2; /* register values */
RRE(inst, regs, r1, r2);
ARCH_DEP(program_interrupt) (regs, PGM_OPERATION_EXCEPTION);
}
}
#endif /*defined(FEATURE_MESSAGE_SECURITY_ASSIST)*/
#if !defined(_GEN_ARCH)
#if defined(_ARCHMODE2)
#define _GEN_ARCH _ARCHMODE2
#include "crypto.c"
#endif
#if defined(_ARCHMODE3)
#undef _GEN_ARCH
#define _GEN_ARCH _ARCHMODE3
#include "crypto.c"
#endif
#endif /*!defined(_GEN_ARCH)*/
|