DECRU-CRYPTO-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, 
        OBJECT-TYPE, 
        Integer32                FROM SNMPv2-SMI
        OBJECT-GROUP, 
        MODULE-COMPLIANCE        FROM SNMPv2-CONF
	decruModules, 
        decruCryptoGroups, 
        decruCompliances, 
        dcrCrypto                FROM DECRU-BASE-MIB;

    decruCryptoMibModule MODULE-IDENTITY
	LAST-UPDATED "200702281619Z"
	ORGANIZATION "Decru Inc."
        CONTACT-INFO "Mohit Kumar, mohitk@decru.com"
	DESCRIPTION 
            "The Crypto mib module for Datafort"
        REVISION "200702281619Z"
	DESCRIPTION 
            "First revision, to transition to SMIv2"
	::= { decruModules 4 }

-- General Info
    dcrCryptoInfo OBJECT IDENTIFIER ::= { dcrCrypto 1 }

-- Status group 
    dcrCryptoStatus OBJECT IDENTIFIER ::= { dcrCrypto 2 }

    dcrCrptStatDriver OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto driver status. It is 0, if no error found."
	::= { dcrCryptoStatus 1 }
    
    dcrCrptStatTamper OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Temper detection status. It is 0, if no intrusion detected."
	::= { dcrCryptoStatus 2 }
    
    dcrCrptStatSelfTest OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto self-test result. It is 0, if no error found."
	::= { dcrCryptoStatus 3 }
    
    dcrCrptStatSmartCard OBJECT-TYPE
	SYNTAX INTEGER {
	  initialized(0),
	  notInitialized(1),
	  notFound(2)
	  }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "System Smart Card status as illustrated by the enumerations."
	::= { dcrCryptoStatus 4 }
    
    dcrCrptStatInit OBJECT-TYPE
	SYNTAX INTEGER {
	  ok(0),
	  newCardExpected(1),
	  notFound(2),
	  masterKeyNotLoaded(3),
	  notInitialized(4),
	  unknownError(255)
	  }
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto sub-system initialized status. It is expected to
	     be 0(OK) after DataFort is initialized through Wizard.
	     It is expected to be 4(notInitialized) before Wizard."
	::= { dcrCryptoStatus 5 }

    dcrCrptInterrupt OBJECT IDENTIFIER ::= { dcrCryptoStatus 6 }

    dcrCrptIntMasterKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Number of fatal interrupts while master-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptInterrupt 1 }
    
    dcrCrptIntCryptainerKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of fatal interrupts while cryptainer-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptInterrupt 2 }
    
    dcrCrptIntPublicKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of fatal interrupts while public-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptInterrupt 3 }
    
    dcrCrptIntPipeFull OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of occurences of encryption pipe-full. It is 0, 
	     if no error occurred."
	::= { dcrCrptInterrupt 4 }
    
    dcrCrptIntLinkStatus OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Link status between microcontroller and its device driver. 
             It is 0, if no error occurred."
	::= { dcrCrptInterrupt 5 }
    
    dcrCrptIntFPGAError OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Unrecoverable FPGA error. It is 0, if no error occurred."
	::= { dcrCrptInterrupt 6 }

    dcrCrptNumCards OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Number of crypto cards in the system."
	::= { dcrCryptoStatus 7 }

-- crypto card table
    DcrCrptCardEntry ::=
      SEQUENCE {
        dcrCrptCardIndex Integer32,
	dcrCrptCardName OCTET STRING,
	dcrCrptCardStatDriver Integer32,
	dcrCrptCardStatTamper Integer32,
	dcrCrptCardStatSelfTest Integer32,
	dcrCrptCardIntMasterKey Integer32,
	dcrCrptCardIntCryptainerKey Integer32,
	dcrCrptCardIntPublicKey Integer32,
	dcrCrptCardIntPipeFull Integer32,
	dcrCrptCardIntLinkStatus Integer32,
	dcrCrptCardIntFPGAError Integer32,
	dcrCrptCard2BitError Integer32,
	dcrCrptCard1BitDDRCnt Integer32,
	dcrCrptCard2BitDDRCnt Integer32,
	dcrCrptCard1BitSDRAMCnt Integer32,
	dcrCrptCard2BitSDRAMCnt Integer32
      }

    dcrCrptCardTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF DcrCrptCardEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION  
	    "Contains the list of crypto card entries."
	::= { dcrCryptoStatus 8 }

    dcrCrptCardEntry OBJECT-TYPE
	SYNTAX DcrCrptCardEntry
	MAX-ACCESS  not-accessible
	STATUS current
        DESCRIPTION
            "An entry containing information about the crypto card."
	INDEX { dcrCrptCardIndex }
	::= { dcrCrptCardTable 1 }

    dcrCrptCardIndex OBJECT-TYPE
	SYNTAX Integer32 (1..2147483647)
	MAX-ACCESS read-only
	STATUS current	
        DESCRIPTION
            "A unique index for the crypto card."
	::= { dcrCrptCardEntry 1 }
        
    dcrCrptCardName OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto card name. (example: '/dev/dcrcrypto0')"
	::= { dcrCrptCardEntry 2 }
        
    dcrCrptCardStatDriver OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto card driver status. It is 0, if no error found."
	::= { dcrCrptCardEntry 3 }
        
    dcrCrptCardStatTamper OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto card tamper detection status. 
             It is 0, if no intrusion detected."
	::= { dcrCrptCardEntry 4 }
    
    dcrCrptCardStatSelfTest OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Crypto card self-test result. It is 0, if no error found."
	::= { dcrCrptCardEntry 5 }
   
    dcrCrptCardIntMasterKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION  
	    "Number of fatal interrupts for a card while master-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptCardEntry 6 }
 
    dcrCrptCardIntCryptainerKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of fatal interrupts for card while cryptainer-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptCardEntry 7 }
    
    dcrCrptCardIntPublicKey OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of fatal interrupts for card while public-key operation 
	     inside crypto sub-system. It is 0, if no error occurred."
	::= { dcrCrptCardEntry 8 }
    
    dcrCrptCardIntPipeFull OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Number of occurences of encryption pipe-full for a card. 
             It is 0, if no error occurred."
	::= { dcrCrptCardEntry 9 }
    
    dcrCrptCardIntLinkStatus OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Link status between a card's microcontroller and its device driver. 
             It is 0, if no error occurred."
	::= { dcrCrptCardEntry 10 }
    
    dcrCrptCardIntFPGAError OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Unrecoverable FPGA error for a card. It is 0, if no error occurred."
	::= { dcrCrptCardEntry 11 }
    
    dcrCrptCard2BitError OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Type of unrecoverable error for a card. It is 0, if no error occurred."
	::= { dcrCrptCardEntry 12 }
    
    dcrCrptCard1BitDDRCnt OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Total count of 1-bit DDR errors for card."
	::= { dcrCrptCardEntry 13 }
    
    dcrCrptCard2BitDDRCnt OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Total count of 2-bit DDR errors for card."
	::= { dcrCrptCardEntry 14 }
    
    dcrCrptCard1BitSDRAMCnt OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Total count of 1-bit SDRAM errors for card."
	::= { dcrCrptCardEntry 15 }
    
    dcrCrptCard2BitSDRAMCnt OBJECT-TYPE
	SYNTAX Integer32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	    "Total count of 2-bit SDRAM errors for card."
	::= { dcrCrptCardEntry 16 }

-- Compliance Statements
decruCryptoCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The requirements for conformance to the crypto mib."
    MODULE -- this module

       MANDATORY-GROUPS { 
            decruCryptoStatusGroup 
       }
   ::= { decruCompliances 3 }   


-- Object Groups
    decruCryptoStatusGroup OBJECT-GROUP
        OBJECTS {
            dcrCrptStatDriver, dcrCrptStatTamper, dcrCrptStatSelfTest, 
            dcrCrptStatSmartCard, dcrCrptStatInit, dcrCrptIntMasterKey,
            dcrCrptIntCryptainerKey, dcrCrptIntPublicKey, dcrCrptIntPipeFull, 
            dcrCrptIntLinkStatus, dcrCrptIntFPGAError, dcrCrptNumCards, 
            dcrCrptCardIndex, dcrCrptCardName, dcrCrptCardStatDriver, 
            dcrCrptCardStatTamper, dcrCrptCardStatSelfTest, dcrCrptCardIntMasterKey, 
            dcrCrptCardIntCryptainerKey, dcrCrptCardIntPublicKey, 
            dcrCrptCardIntPipeFull, dcrCrptCardIntLinkStatus, dcrCrptCardIntFPGAError, 
            dcrCrptCard2BitError, dcrCrptCard1BitDDRCnt, dcrCrptCard2BitDDRCnt, 
            dcrCrptCard1BitSDRAMCnt, dcrCrptCard2BitSDRAMCnt 
        }
        STATUS current
        DESCRIPTION
            "The System's Information Group."
        ::= { decruCryptoGroups 1 }
END


