mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-08-08 05:29:10 -04:00
186 lines
8.1 KiB
C
186 lines
8.1 KiB
C
/*-
|
|
* Copyright (C) 2001-2003 by NBMK Encryption Technologies.
|
|
* All rights reserved.
|
|
*
|
|
* NBMK Encryption Technologies provides no support of any kind for
|
|
* this software. Questions or concerns about it may be addressed to
|
|
* the members of the relevant open-source community at
|
|
* <tech-crypto@netbsd.org>.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
/*****************************************************************************
|
|
* @(#) n8_sks.h 1.23@(#)
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
/** @file SKS_Management_Interface
|
|
* @brief Header file for the SKS Management Interface library.
|
|
*
|
|
* This file contains all of the needed SKS Management Interface definitions
|
|
* and data types..
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* Revision history:
|
|
* 07/03/02 brr Define SKS directory for VxWorks since Windows based
|
|
* compiler cannot pass the string in correctly.
|
|
* 05/23/02 brr Moved definition of SKS directory to Makefile.defaults.
|
|
* 05/02/02 brr Removed all references to the queue structure.
|
|
* 03/15/02 bac Removed all references to SUPPORTING_BM
|
|
* 01/30/02 bac Rewrote macros that depend on SUPPORTING_BM to not reference
|
|
* the behavioral model routines at all.
|
|
* 01/13/02 brr Revamp to build in 2.1 environment.
|
|
* 11/13/01 mel Fixed bug #297: register access macros in n8_sks.c will
|
|
* only work on the behavioral model
|
|
* - added SKS_READ/WRITE definitions
|
|
* 11/02/01 bac Moved location of SKS_KEY_NODE_PATH.
|
|
* 10/12/01 dkm Moved public portion to n8_pub_common.h.
|
|
* 10/10/01 jdj Fixed bug where SKS busy bits were not being polled
|
|
* correctly.
|
|
* 10/01/01 hml jdj's code review changes, plus some fixes.
|
|
* 06/14/01 jdj Changed API to reflect new Allocate/Free calls.
|
|
* 06/04/01 jdj Original version.
|
|
****************************************************************************/
|
|
|
|
#ifndef N8_SKS_H
|
|
#define N8_SKS_H
|
|
|
|
#include "n8_pub_errors.h"
|
|
#include "n8_common.h"
|
|
|
|
#ifdef VX_BUILD
|
|
/* This is defined here for VxWorks since the Windows based compiler */
|
|
/* will not accept the definition on the command line in the Makefile */
|
|
#undef SKS_KEY_NODE_PATH
|
|
#define SKS_KEY_NODE_PATH "/opt/NetOctave/sks/"
|
|
#endif
|
|
|
|
#define SKS_PROM_MAX_OFFSET (4096)
|
|
#define SKS_PROM_MIN_OFFSET (0)
|
|
#define SKS_WORDS_PER_ALLOC_UNIT (8)
|
|
#define SKS_ALLOC_UNITS_PER_PROM ( SKS_PROM_MAX_OFFSET / SKS_WORDS_PER_ALLOC_UNIT )
|
|
|
|
#define SKS_INUSE (0x1)
|
|
#define SKS_FREE (0x0)
|
|
|
|
/* Length for SKS_*_DATA_LENGTH is in SKS words (32 bits each). */
|
|
#define SKS_RSA_DATA_LENGTH(kl) (( (kl) * 18 ) + 8 )
|
|
#define SKS_DSA_DATA_LENGTH(kl) (( (kl) * 8 ) + 20 )
|
|
|
|
#define SKS_RSA_P_OFFSET(kl) ( 0 )
|
|
#define SKS_RSA_Q_OFFSET(kl) ( 2 * (kl))
|
|
#define SKS_RSA_DP_OFFSET(kl) ( 4 * (kl))
|
|
#define SKS_RSA_DQ_OFFSET(kl) ( 6 * (kl))
|
|
#define SKS_RSA_RMODP_OFFSET(kl) ( 8 * (kl))
|
|
#define SKS_RSA_RMODQ_OFFSET(kl) ( 10 * (kl))
|
|
#define SKS_RSA_N_OFFSET(kl) ( 12 * (kl))
|
|
#define SKS_RSA_PINV_OFFSET(kl) ( 16 * (kl))
|
|
#define SKS_RSA_CP_OFFSET(kl) ( 18 * (kl))
|
|
#define SKS_RSA_CQ_OFFSET(kl) (( 18 * (kl)) + 4)
|
|
|
|
#define SKS_RSA_P_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_Q_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_DP_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_DQ_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_RMODP_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_RMODQ_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_N_LENGTH(kl) (( kl ) * 4)
|
|
#define SKS_RSA_PINV_LENGTH(kl) (( (kl)/2 ) * 4)
|
|
#define SKS_RSA_CP_LENGTH(kl) (( 1 ) * 4)
|
|
#define SKS_RSA_CQ_LENGTH(kl) (( 1 ) * 4)
|
|
|
|
|
|
#define SKS_DSA_P_OFFSET(kl) ( 0 )
|
|
#define SKS_DSA_GRMODP_OFFSET(kl) ( 4 * (kl))
|
|
#define SKS_DSA_Q_OFFSET(kl) ( 8 * (kl))
|
|
#define SKS_DSA_X_OFFSET(kl) (( 8 * (kl)) + 8)
|
|
#define SKS_DSA_CP_OFFSET(kl) (( 8 * (kl)) + 16)
|
|
|
|
#define SKS_DSA_P_LENGTH(kl) (( kl ) * 4)
|
|
#define SKS_DSA_GRMODP_LENGTH(kl) (( kl ) * 4)
|
|
#define SKS_DSA_Q_LENGTH(kl) (( 2 ) * 4)
|
|
#define SKS_DSA_X_LENGTH(kl) (( 2 ) * 4)
|
|
#define SKS_DSA_CP_LENGTH(kl) (( 1 ) * 4)
|
|
|
|
#define SKS_MULTIPLE_OF_16_BYTES 16
|
|
|
|
/**********************************************************************
|
|
* SKS_READ_CONTROL
|
|
**********************************************************************/
|
|
/** @brief Read control register
|
|
*
|
|
* @param _NSPinstance_p RO: Pointer to the NSP Structure for this chip.
|
|
*
|
|
*********************************************************************/
|
|
#define SKS_READ_CONTROL(_NSPinstance_p) \
|
|
( ((NSP2000REGS_t *)(_NSPinstance_p)->NSPregs_p)->pkh_secure_key_storage_control )
|
|
|
|
/**********************************************************************
|
|
* SKS_WRITE_CONTROL
|
|
**********************************************************************/
|
|
/** @brief Read control register
|
|
*
|
|
* @param _NSPinstance_p RO: Pointer to the NSP Structure for this chip.
|
|
*
|
|
*********************************************************************/
|
|
/*#define pk_write_sks_control(A) pksim_write_sks_control(A)*/
|
|
#define SKS_WRITE_CONTROL(_NSPinstance_p, A) \
|
|
(((NSP2000REGS_t *)(_NSPinstance_p)->NSPregs_p)->pkh_secure_key_storage_control = (A));
|
|
|
|
/**********************************************************************
|
|
* SKS_READ_CONTROL
|
|
**********************************************************************/
|
|
/** @brief Read control register
|
|
*
|
|
* @param _NSPinstance_p RO: Pointer to the NSP Structure for this chip.
|
|
*
|
|
*********************************************************************/
|
|
#define SKS_READ_DATA(_NSPinstance_p) \
|
|
(((NSP2000REGS_t *)(_NSPinstance_p)->NSPregs_p)->pkh_secure_key_storage_data )
|
|
|
|
/**********************************************************************
|
|
* SKS_WRITE_CONTROL
|
|
**********************************************************************/
|
|
/** @brief Read control register
|
|
*
|
|
* @param _NSPinstance_p RO: Pointer to the NSP Structure for this chip.
|
|
*
|
|
*********************************************************************/
|
|
#define SKS_WRITE_DATA(_NSPinstance_p, A) \
|
|
(((NSP2000REGS_t *)(_NSPinstance_p)->NSPregs_p)->pkh_secure_key_storage_data = (A));
|
|
|
|
|
|
|
|
/****************************
|
|
* Function Prototypes *
|
|
****************************/
|
|
/* These have been moved to n8_sks_proto.h in order to prevent a circular
|
|
dependency with n8_rsa.h */
|
|
|
|
#endif
|