RC-DIGITAL-CERT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32
        FROM SNMPv2-SMI
    DisplayString, TruthValue, RowStatus, DateAndTime
        FROM SNMPv2-TC
    InterfaceIndex
        FROM IF-MIB
    rcDigitalCert, RcLongDisplayString
        FROM RAPID-CITY;

rcDigitalCertMib  MODULE-IDENTITY
       LAST-UPDATED     "202101110000Z"
       ORGANIZATION "Avaya"
       CONTACT-INFO "Prem Palarapu
             Postal:  Avaya
                      600 Technology Park
                      Billerica, MA 01821
              email:  prempa@avaya.com"
       DESCRIPTION  "Enterprise MIB for the Digital Certificate mibs."

       REVISION "202101110000Z" -- 11 Jan 2021
       DESCRIPTION "Version 13: Add rcDigitalCertCaSubjectName under rcDigitalCertCaTable and add rcDigitalCertCaSubjTable.
                 Requested by Isabella Vlad VOSS (Oana)"


       REVISION "202008280000Z" -- 28 August 2020
       DESCRIPTION "Version 12: Add rcDigitalCertCaSha256Fingerprint under rcDigitalCertCaTable .
                 Requested by Nadia Saru VOSS (Oana)"


       REVISION "201906250000Z" -- 25 June 2019
       DESCRIPTION "Version 11:  Extend the range of rcDigitalCertStoreSubjectPublicKey from 
	   			 2048 to 4096.
				 Requested by Marius Munteanu (VOSS-14196) VOSS (Prem)"

       REVISION "201905290000Z" -- 29 May 2019
       DESCRIPTION "Version 10:  Add notApplicable to rcDigitalCertGenerateCsr. Add the following -
	   			 rcDigitalCertRelaxedMode, rcDigitalCertPkcs12Password, 
				 rcDigitalCertSanTable.
				 Requested by Adrian Lungu for VOSS 7.1.3 (Prem)"

       REVISION "201904040000Z" -- 04 Apr 2019
       DESCRIPTION "Version 9:  Add rcDigitalCertStoreType to the INDEX of
	   			rcDigitalCertStoreEntry and reversed the order of
				rcDigitalCertStoreType and rcDigitalCertStoreCommonName
				based on the table definition that was actually released.
				Somone changed the mib without informing the Agent Team.
				(Prem)"

       REVISION "201702100000Z" -- 10 Feb 2017
       DESCRIPTION "Version 8:  Corrected MIB compiler errors."
	   
       REVISION "201612090000Z" -- 9 December 2016
       DESCRIPTION "Version 7:  Increased the size of rcDigitalCertSerialNumber and
	   			rcDigitalCertStoreSerialNumber from 0..21 to 0..50
	   			Requested by Shreesh Patil (prempa)"
	   
       REVISION "201610130000Z" -- 13 October 2016
       DESCRIPTION "Version 6:  Made the following changes -
				* Changed the range of rcDigitalCertInstallFileName 
				  from 0..80 to 1..80
				* Added rcDigitalCertInstallFile, rcDigitalCertUninstallFile,
                        	  rcDigitalCertUninstallFileName and rcDigitalCertGenerateCsr
				* Removed rcDigitalCertCaOcspUrl, rcDigitalCertCaInstallCaFileName
				  and rcDigitalCertCaCdpUrl from rcDigitalCertCaTable
				* Removed caCert(1) from rcDigitalCertType enums and added
				  onlineCaCert(1) and offlineCaCert(3)
				* Added rcDigitalCertStoreTable
	   			 Requested by Hariprasad Rajendran (prempa)"
	   
       REVISION "201608310000Z" -- 31 August 2016
       DESCRIPTION "Version 5:  Updated the description of rcDigitalCertType"
	   
       REVISION "201608120000Z" -- 12 August 2016
       DESCRIPTION "Version 4:  Removed rcDigitalCertCaCaCertIndex and
	   			rcDigitalCertCaSubjectCertIndex from 
				rcDigitalCertCaTable.
				Changed rcDigitalCertIndex to rcDigitalCertType.
				Added rcDigitalCertCdpUrl, rcDigitalCertOcspUrl
				and rcDigitalCertExtendedKeyUsage.
	   			Requested by Shreesh Patil (prempa)"
	   
       REVISION "201607290000Z" -- 29 July 2016
       DESCRIPTION "Version 4:  Added getCrl enum value under 
	   			rcDigitalCertCaAction and also added 
				rcDigitalCertCaCdpUrl
	   			Requested by Shreesh Patil (prempa)"
	   
       REVISION "201607150000Z" -- 15 July 2016
       DESCRIPTION "Version 3: Removed 	rcDigitalCertCaInstallOcspCaFileName"
	   
       REVISION "201607050000Z" -- 05 July 2016
       DESCRIPTION "Version 2: Changed revoke to remove rcDigitalCertCaAction
	                       Removed rcDigitalCertCaRevocationTime and rcDigitalCertCaRevocationReason
			       Added rcDigitalCertCaActionChallengePassword,
			             rcDigitalCertCaUsePost, rcDigitalCertCaInstallRootCaFileName
				     and rcDigitalCertCaInstallOcspCaFileName"
	   
       REVISION "201606020000Z" -- 2 June 2016
       DESCRIPTION "Version 1:    Generate File. Added the following -
	   			  8 mib objects under rcDigitalCertScalars,
				  rcDigitalCertKeyTable,
				  rcDigitalCertCaTable,
				  rcDigitalCertTable"
       ::= { rcDigitalCert 1 }

rcDigitalCertNotifications   OBJECT IDENTIFIER ::= { rcDigitalCertMib 0 }

rcDigitalCertObjects         OBJECT IDENTIFIER ::= { rcDigitalCertMib 1 }

rcDigitalCertScalars         OBJECT IDENTIFIER ::= { rcDigitalCertObjects 1 }

--Scalar objects

rcDigitalCertSubjectCommonName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..64))                        
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The Common Name field of the subject sending the 
           	       Certificate Signing Request to the Certificate Authority"
        ::= {rcDigitalCertScalars  1 }

rcDigitalCertSubjectEmailAddress OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..254))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The Email Address of the subject sending the Certificate 
                       Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 2 }

rcDigitalCertSubjectOrganizationalUnit OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..64))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The Organizational Unit field of the subject sending the
           	       Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 3 }

rcDigitalCertSubjectOrganization OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..64))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The Organization of the subject sending the Certificate
           	       Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 4 }

rcDigitalCertSubjectLocality OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The name of the Locality of the subject sending the
           	       Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 5 }

rcDigitalCertSubjectProvince  OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The Province name of the subject sending the Certificate
           	       Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 6 }

rcDigitalCertSubjectCountry OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "The name of the country of the subject sending the
           	       Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertScalars 7 }

rcDigitalCertInstallFile  OBJECT-TYPE
        SYNTAX        INTEGER { offlineCACert(1),
                                offlineRootCACert(2),
                                offlineSubjectCert(3),
                                offlineCRLFile(4)}
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "This installs the CA/Root CA/subject certificate/CRL file obtained
                       offline from the Certificate Authority"
        ::= { rcDigitalCertScalars 8 }

rcDigitalCertInstallFileName  OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(1..80))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "This contains the certificate file name obtained
                       offline from the Certificate Authority"
        ::= { rcDigitalCertScalars 9 }

rcDigitalCertUninstallFile  OBJECT-TYPE
        SYNTAX        INTEGER { offlineCACert(1),
                                offlineRootCACert(2),
                                offlineSubjectCert(3),
                                offlineCRLFile(4)}
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "This uninstalls the CA/Root CA/subject certificate/CRL file obtained
                       offline from the Certificate Authority"
        ::= { rcDigitalCertScalars 10 }

rcDigitalCertUninstallFileName  OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(1..80))
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "This contains the certificate file name obtained
                       offline from the Certificate Authority"
        ::= { rcDigitalCertScalars 11 }

rcDigitalCertGenerateCsr  OBJECT-TYPE
        SYNTAX        INTEGER { 
			generate(1),
			notApplicable(2)
		      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "Generates the Certificate Signing Request required to 
                       obtain the Offline Subject Certificate. SNMP get for this
		       object will always return notApplicable. SNMP set should
		       use generate."
        ::= { rcDigitalCertScalars 12 }

rcDigitalCertRelaxedMode  OBJECT-TYPE
        SYNTAX        INTEGER { 
			relaxed(1),
			notApplicable(2)
		      }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION   "Used in conjunction with rcDigitalCertGenerateCsr or rcDigitalCertInstallFile &
	    	       rcDigitalCertInstallFileName (for offline subject cert only) to:
		       - allow generation of CSR without setting all certificate subject fields by
		         relaxing consistency checks.
		       - allow inclusion of Subject Alternative Names (SAN) in CSR
		       - allow installing certificates(offlineSubjectCert only) not only in DER but PKCS12
		         format as well with the following minimal restrictions:
			 	- either Subject Common Name or SAN must be configured
				- only those Certificate Subject fields(subset of rcDigitalCertScalars 1 -> 7)
				  present in rcDigitalCertInstallFileName (offlineSubjectCert about to be installed)
				  are matched against their counterparts configured on box
		       Ignored if used in a different context than the 2 previously mentioned(with 
		       rcDigitalCertGenerateCsr or rcDigitalCertInstallFile) SNMP get for this object will always
		       return notApplicable(2) because it is only meaningful in the context of 'generate-csr' or
		       'install-file offline-subject-filename' commands"
        ::= { rcDigitalCertScalars 13 }

rcDigitalCertPkcs12Password OBJECT-TYPE
	SYNTAX	      DisplayString (SIZE(1..128))
	MAX-ACCESS    read-write
	STATUS	      current
	DESCRIPTION   "Password to be used for PKCS12 container extraction.
	    	       SNMP get will always return '******' for this object (security reasons)
		       Used in conjunction with rcDigitalCertRelaxedMode & rcDigitalCertInstallFile & 
		       rcDigitalCertInstallFileName(for offlineSubjectCert only) otherwise it is ignored. 
		       Allows installing offlineSubjectCert and private key in the form of a PKCS12 container"
	::= { rcDigitalCertScalars 14 }

------ key table

rcDigitalCertKeyTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDigitalCertKeyEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Table containing all the information related to the key-pair, required
                       to get the Digital Certificate from the Certificate Authority."
        ::= { rcDigitalCertObjects 2 }


rcDigitalCertKeyEntry OBJECT-TYPE
        SYNTAX        RcDigitalCertKeyEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "The entry specifies the key-pair
                       name, size and the algorithm used for the generation of key-pair."
        INDEX          { rcDigitalCertKeyType, rcDigitalCertKeySize}
        ::= { rcDigitalCertKeyTable 1 }

RcDigitalCertKeyEntry ::= SEQUENCE {
        rcDigitalCertKeyType        INTEGER,
        rcDigitalCertKeySize        Integer32,
	rcDigitalCertKeyName        DisplayString,
        rcDigitalCertKeyRowStatus   RowStatus
        }


rcDigitalCertKeyType OBJECT-TYPE
        SYNTAX        INTEGER {rsa (1)}
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Defines the algorithm used to generate the key-pair"
        ::= { rcDigitalCertKeyEntry 1 }

rcDigitalCertKeySize OBJECT-TYPE
        SYNTAX        Integer32 (2048)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Defines the size of the key-pair to be generated "
        ::= { rcDigitalCertKeyEntry 2 }

rcDigitalCertKeyName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..46))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Refers to the name of the key-pair generated for the subject. 
		       It is an auto generated entity, 
		       generated as the combination of key-type and key-size"
        ::= { rcDigitalCertKeyEntry 3 }

rcDigitalCertKeyRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Used to create/delete entries"
        ::= { rcDigitalCertKeyEntry 4 }


--  ca table

rcDigitalCertCaTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDigitalCertCaEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Table containing all the information related to the 
 		       Certificate Authority issuing the Digital Certificate"
        ::= { rcDigitalCertObjects 3 }

rcDigitalCertCaEntry OBJECT-TYPE
        SYNTAX        RcDigitalCertCaEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Entry containing
                       information about the Certificate Authority"
        INDEX     { rcDigitalCertCaName }
        ::= { rcDigitalCertCaTable 1 }

RcDigitalCertCaEntry ::= SEQUENCE {
                rcDigitalCertCaName                         	DisplayString,
                rcDigitalCertCaCommonName                  	DisplayString,
                rcDigitalCertCaKeyName                     	DisplayString,
                rcDigitalCertCaCaUrl                       	RcLongDisplayString,
                rcDigitalCertCaAction                      	INTEGER,
		rcDigitalCertCaActionChallengePassword          DisplayString,
                rcDigitalCertCaLastActionStatus            	INTEGER,
                rcDigitalCertCaLastActionFailureReason     	DisplayString,
		rcDigitalCertCaInstallRootCaFileName            DisplayString,
                rcDigitalCertCaSubjectCertificateValidityDays   Integer32,
		rcDigitalCertCaUsePost                          TruthValue,
                rcDigitalCertCaRowStatus                        RowStatus,
                rcDigitalCertCaSha256Fingerprint           DisplayString,
                rcDigitalCertCaSubjectName                 DisplayString
                }


rcDigitalCertCaName OBJECT-TYPE
    	SYNTAX        DisplayString (SIZE(1..45))
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "User defined name referring to the Certificate Authority 
		       issuing the Digital Certificate"
        ::= { rcDigitalCertCaEntry 1 }

rcDigitalCertCaCommonName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..64))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Defines the Common Name of the Certificate Authority 
		       issuing the Digital Certificate"
        ::= { rcDigitalCertCaEntry 2 }

rcDigitalCertCaKeyName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..45))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Defines the name of the associated key pair . 
		       It refers to the Key Name entry of the rcDigitalCertKeyTable"
        ::= { rcDigitalCertCaEntry 3 }

rcDigitalCertCaCaUrl OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Defines the URL of the Certificate Authority issuing 
                       the Digital Certificate"
        ::= { rcDigitalCertCaEntry 4 }

rcDigitalCertCaAction OBJECT-TYPE
        SYNTAX        INTEGER {
                                noop(1),
                                caauth(2),
                                enroll(3),
                                renew(4),
                                remove(5),
			        install(6),
                                getCrl(7)
		              }
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "specifies the various actions Certificate Authority can  take-
            'noop'      - No operation
            'caauth'    - Certificate Authority (CA) authentication.
            'enroll'    - Certificate Enrolment Request.
            'renew'     - Certificate Renew Request.
            'remove'    - Removes the subject certificate obtained online from the Certificate Authority.
	    'install'   - Installs the subject certificate obtained online from the Cerificate Authority.
            'getCrl'    - Get the Certificate Revocation List from the CDP."
        ::= { rcDigitalCertCaEntry 5 }
    
rcDigitalCertCaActionChallengePassword OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "specifies the challenge password required to perform the scep operation"
        ::= { rcDigitalCertCaEntry 6 }
    
rcDigitalCertCaLastActionStatus OBJECT-TYPE
        SYNTAX        INTEGER {
                                none(1),
                                success(2),
                                failed(3),
                                inProgress(4)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the status of the last action 
             'none'         - No action was performed yet.
             'success'      - Execution of the action triggered is
                    		completed successfully.
             'failed'       - Execution of the action triggered has
                     		failed.
             'inProgress'   - Execution of the action triggered is
                    		in progress. "
        ::= { rcDigitalCertCaEntry 7 }

rcDigitalCertCaLastActionFailureReason OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..81))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Defines the reason of failure for the last action performed 
                       by the Certificate Authority"
        ::= { rcDigitalCertCaEntry 8 }
    
rcDigitalCertCaInstallRootCaFileName OBJECT-TYPE

        SYNTAX         DisplayString (SIZE(0..80))
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "installs the Root Certificate Authority's certificate
                        obtained offline "
        ::={ rcDigitalCertCaEntry 9 }
    
rcDigitalCertCaSubjectCertificateValidityDays   OBJECT-TYPE
        SYNTAX        Integer32 (7..1185)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Number of days for which subject certificate will remain
                       valid"
        DEFVAL         { 365 }
        ::= { rcDigitalCertCaEntry 10 }

rcDigitalCertCaUsePost OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "specifies the HTTP request type : URL or POST , TRUE for EJBCA and FALSE for Win2012 CA"
        DEFVAL        { true }
        ::= { rcDigitalCertCaEntry 11 }
 
rcDigitalCertCaRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "Used to create/delete entries"
        ::= { rcDigitalCertCaEntry 12 }

rcDigitalCertCaSha256Fingerprint OBJECT-TYPE 
    SYNTAX DisplayString (SIZE(64))
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "Encrypted fingerprint of the certificate"
    ::= { rcDigitalCertCaEntry 13 }

rcDigitalCertCaSubjectName OBJECT-TYPE
        SYNTAX         DisplayString (SIZE(0..64))
        MAX-ACCESS     read-create
        STATUS         current
        DESCRIPTION    "Subject Name  of the subject sending the
                          Certificate Signing Request to the Certificate Authority "
        ::={ rcDigitalCertCaEntry 14 }


-- certificate table

rcDigitalCertTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDigitalCertEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Table of information about digital certificate"
        ::= { rcDigitalCertObjects 4 }

rcDigitalCertEntry OBJECT-TYPE
        SYNTAX        RcDigitalCertEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Entry containing
                       information about digital certificates"
        INDEX     { rcDigitalCertType }
        ::= { rcDigitalCertTable 1 }

RcDigitalCertEntry ::= SEQUENCE {
                rcDigitalCertType                            INTEGER,
                rcDigitalCertVersionNumber                   DisplayString,
                rcDigitalCertSerialNumber                    DisplayString,
                rcDigitalCertIssuerName              	     RcLongDisplayString,
                rcDigitalCertValidStartPeriod                DateAndTime,
                rcDigitalCertValidEndPeriod                  DateAndTime,
		rcDigitalCertCertificateSignatureAlgorithm   INTEGER,
                rcDigitalCertCertificateSignature            RcLongDisplayString,
                rcDigitalCertSubject           		     RcLongDisplayString,
                rcDigitalCertSubjectPublicKeyAlgorithm       INTEGER,
                rcDigitalCertSubjectPublicKey                OCTET STRING,
                rcDigitalCertHasBasicConstraint              TruthValue,
                rcDigitalCertHasKeyUsage                     TruthValue,
                rcDigitalCertIsCa                            TruthValue,
                rcDigitalCertKeyUsage                        BITS,
		rcDigitalCertStatus                          DisplayString,
                rcDigitalCertInstalled                       TruthValue,
		rcDigitalCertCdpUrl			     RcLongDisplayString,
		rcDigitalCertOcspUrl			     RcLongDisplayString,
		rcDigitalCertExtendedKeyUsage		     DisplayString
        }

rcDigitalCertType OBJECT-TYPE
        SYNTAX        INTEGER {
                                 onlineCaCert(1),
                                 onlineSubjectCert(2),
                                 offlineCaCert (3),
                                 offlineSubjectCert (4)
                              }
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Uniquely identifies the certificate
                      'onlineCaCert'       - Certificate Authority's Certificate obtained Online from Certificate Authority
                      'onlineSubjectCert'  - Subject Certificate obtained Online from Certificate Authority
                      'offlineCaCert'      - Certificate Authority's Certificate obtained Offline from Certificate Authority
                      'offlineSubjectCert' - Subject Certificate obtained Offline from Certificate Authority"
        ::= { rcDigitalCertEntry  1 }

rcDigitalCertVersionNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..16))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the version number of the certificate for the subject 
                       as issued by the Certificate Authority"
        ::= { rcDigitalCertEntry  2 }

rcDigitalCertSerialNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..50))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the serial number of the certificate for the subject 
                       as issued by the Certificate Authority "
  ::= {rcDigitalCertEntry  3 }

rcDigitalCertIssuerName OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the issuer's  name of the certificate for the subject 
                       as issued by the Certificate Authority"
        ::= { rcDigitalCertEntry 4 }


rcDigitalCertValidStartPeriod OBJECT-TYPE
        SYNTAX        DateAndTime
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the start date of the validation period of the certificate 
                       for the subject as issued by the Certificate Authority "
        ::= { rcDigitalCertEntry 5 }


rcDigitalCertValidEndPeriod OBJECT-TYPE
        SYNTAX        DateAndTime
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the last date of the validation period of the certificate 
                       for the subject as issued by the Certificate Authority"
        ::= { rcDigitalCertEntry 6 }

rcDigitalCertCertificateSignatureAlgorithm OBJECT-TYPE
        SYNTAX        INTEGER {
                                 rsaEncryption(1),
                                 md2withRSAEncryption(2),
                                 md4withRSAEncryption(3),
                                 md5withRSAEncryption(4),
                                 sha1withRSAEncryption(5),
                                 sha256withRSAEncryption(11),
                                 sha384withRSAEncryption(12),
                                 sha512withRSAEncryption(13),
                                 sha224withRSAEncryption(14)
                              }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the algorithm used for the issuer's signature on the certificate 
	               for the subject as issued by the Certificate Authority"
        ::= { rcDigitalCertEntry 7 }

rcDigitalCertCertificateSignature OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..2049))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the issuer's signature on the certificate for the subject 
		       as issued by the Certificate Authority"
        ::= { rcDigitalCertEntry 8 }

rcDigitalCertSubject OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the details of the subject on its certificate as 
		      issued by Certificate Authority "
        ::= { rcDigitalCertEntry 9 }

rcDigitalCertSubjectPublicKeyAlgorithm OBJECT-TYPE
        SYNTAX        INTEGER  { 
                                 rsaEncryption(1),
                                 md2withRSAEncryption(2),
                                 md4withRSAEncryption(3),
                                 md5withRSAEncryption(4),
                                 sha1withRSAEncryption(5),
                                 sha256withRSAEncryption(11),
                                 sha384withRSAEncryption(12),
                                 sha512withRSAEncryption(13),
                                 sha224withRSAEncryption(14)
                               }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the algorithm used to generate the subject's
                       public key for the certificate issued by the Certificate Authority"
        ::= { rcDigitalCertEntry 10 }

rcDigitalCertSubjectPublicKey OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(0..513))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the public key of the subject used to the Certificate Signing Request"
        ::= { rcDigitalCertEntry 11 }

rcDigitalCertHasBasicConstraint OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies whether certificate contains basic certificate constraint"
        ::= { rcDigitalCertEntry 12 }

rcDigitalCertHasKeyUsage OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies whether certificate contains basic key usage constraint"
        ::= { rcDigitalCertEntry  13 }

rcDigitalCertIsCa OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies if this is Certificate Authority's certificate or not"
        ::= { rcDigitalCertEntry 14 }

rcDigitalCertKeyUsage OBJECT-TYPE
        SYNTAX        BITS {
                             digitalSignature(0),
                             nonRepudiation(1),
                             keyEncipherment(2),
                             dataEncipherment(3),
                             keyAgreement(4),
                             keyCertSign(5),
                             cRLSign(6),
                             encipherOnly(7),
                             decipherOnly(8)
                          }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the purpose of the key used in the
                       certificate.It is represented in form of bits as follows-
                       bit 0 - digitalSignature
                       bit 1 - nonRepudiation
                       bit 2 - keyEncipherment
                       bit 3 - dataEncipherment
                       bit 4 - keyAgreement
                       bit 5 - keyCertSign
                       bit 6 - cRLSign
                       bit 7 - encipherOnly
                       bit 8 - decipherOnly"
        ::= { rcDigitalCertEntry 15 }

rcDigitalCertStatus OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..129))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the status of the certificate"
        ::= { rcDigitalCertEntry 16 }

rcDigitalCertInstalled OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies whether the certificate is installed or not"
        ::= { rcDigitalCertEntry 17 }

rcDigitalCertCdpUrl OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the CDP URL present in the Extensions 
	    	       field of the Digital Certificate."
        ::= { rcDigitalCertEntry 18 }

rcDigitalCertOcspUrl OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the OCSP URL present in the AIA
	    	       field of the Digital Certificate."
        ::= { rcDigitalCertEntry 19 }

rcDigitalCertExtendedKeyUsage OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "Specifies the purpose for which the key may be used,
	    	       in addition to or in place of the basic purposes
		       indicated in the key-usage field of the certificate."
        ::= { rcDigitalCertEntry 20 }


-- certificate store table
rcDigitalCertStoreTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDigitalCertStoreEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "table of information about offline intermidate CA and root certificate"
        ::= { rcDigitalCertObjects 5 }

rcDigitalCertStoreEntry OBJECT-TYPE
        SYNTAX        RcDigitalCertStoreEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "entry containing
                       information about offline intermidate CA and root digital certificates"
        INDEX     { rcDigitalCertStoreType,
		    rcDigitalCertStoreCommonName }
        ::= { rcDigitalCertStoreTable 1 }

RcDigitalCertStoreEntry ::= SEQUENCE {
                rcDigitalCertStoreType                            INTEGER,
                rcDigitalCertStoreCommonName                      DisplayString,
                rcDigitalCertStoreVersionNumber                   DisplayString,
                rcDigitalCertStoreSerialNumber                    DisplayString,
                rcDigitalCertStoreIssuerName              	  RcLongDisplayString,
                rcDigitalCertStoreValidStartPeriod                DateAndTime,
                rcDigitalCertStoreValidEndPeriod                  DateAndTime,
		rcDigitalCertStoreCertificateSignatureAlgorithm   INTEGER,
                rcDigitalCertStoreCertificateSignature            RcLongDisplayString,
                rcDigitalCertStoreSubject           		  RcLongDisplayString,
                rcDigitalCertStoreSubjectPublicKeyAlgorithm       INTEGER,
                rcDigitalCertStoreSubjectPublicKey                RcLongDisplayString,
                rcDigitalCertStoreHasBasicConstraint              TruthValue,
                rcDigitalCertStoreHasKeyUsage                     TruthValue,
                rcDigitalCertStoreIsCa                            TruthValue,
                rcDigitalCertStoreKeyUsage                        BITS,
		rcDigitalCertStoreStatus                          DisplayString,
                rcDigitalCertStoreInstalled                       TruthValue,
                rcDigitalCertStoreCdpUrl                          RcLongDisplayString,
                rcDigitalCertStoreOcspUrl                         RcLongDisplayString,
                rcDigitalCertStoreExtendedKeyUsage                DisplayString,
                rcDigitalCertStoreCaFileName                      DisplayString
        }

rcDigitalCertStoreType OBJECT-TYPE
        SYNTAX        INTEGER { caCert(1),
                                rootCaCert(2)}
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "uniquely identifies the certificate
                      'caCert'        - Certificate Authority's Certificate
                      'rootCaCert'    - Root Certificate Authority's Certificate"
        ::= { rcDigitalCertStoreEntry 1 }

rcDigitalCertStoreCommonName OBJECT-TYPE
        SYNTAX        DisplayString  (SIZE(1..64))
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "defines the Common Name of the Certificate Authority 
	    	       issuing the Digital Certificate"
        ::= { rcDigitalCertStoreEntry 2 }

rcDigitalCertStoreVersionNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..16))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the version number of the certificate for the 
	    	       subject as issued by the Certificate Authority"
        ::= { rcDigitalCertStoreEntry  3 }

rcDigitalCertStoreSerialNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..50))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the serial number of the certificate for the 
	    	       subject as issued by the Certificate Authority "
  ::= {rcDigitalCertStoreEntry  4 }

rcDigitalCertStoreIssuerName OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the issuer's  name of the certificate for the 
	    	       subject as issued by the Certificate Authority"
        ::= { rcDigitalCertStoreEntry 5 }

rcDigitalCertStoreValidStartPeriod OBJECT-TYPE
        SYNTAX        DateAndTime
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the start date of the validation period of 
	    	       the certificate for the subject as issued by the Certificate Authority "
        ::= { rcDigitalCertStoreEntry 6 }

rcDigitalCertStoreValidEndPeriod OBJECT-TYPE
        SYNTAX        DateAndTime
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the last date of the validation period of the 
	    	       certificate for the subject as issued by the Certificate Authority"
        ::= { rcDigitalCertStoreEntry 7 }

rcDigitalCertStoreCertificateSignatureAlgorithm OBJECT-TYPE
        SYNTAX        INTEGER {  rsaEncryption(1),
                                 md2withRSAEncryption(2),
                                 md4withRSAEncryption(3),
                                 md5withRSAEncryption(4),
                                 sha1withRSAEncryption(5),
                                 sha256withRSAEncryption(11),
                                 sha384withRSAEncryption(12),
                                 sha512withRSAEncryption(13),
                                 sha224withRSAEncryption(14) }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the algorithm used for the issuer's signature 
	    	       on the certificate for the subject as issued by the 
		       Certificate Authority"
        ::= { rcDigitalCertStoreEntry 8 }

rcDigitalCertStoreCertificateSignature OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..2049))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the issuer's signature on the certificate for 
	    	       the subject as issued by the Certificate Authority"
        ::= { rcDigitalCertStoreEntry 9 }

rcDigitalCertStoreSubject OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the details of the subject on its 
	    	       certificate as issued by Certificate Authority "
        ::= { rcDigitalCertStoreEntry 10 }

rcDigitalCertStoreSubjectPublicKeyAlgorithm OBJECT-TYPE
        SYNTAX        INTEGER  {  rsaEncryption(1),
                                 md2withRSAEncryption(2),
                                 md4withRSAEncryption(3),
                                 md5withRSAEncryption(4),
                                 sha1withRSAEncryption(5),
                                 sha256withRSAEncryption(11),
                                 sha384withRSAEncryption(12),
                                 sha512withRSAEncryption(13),
                                 sha224withRSAEncryption(14) }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the algorithm used to generate the subject's
                       public key for the certificate issued by the Certificate Authority"
        ::= { rcDigitalCertStoreEntry 11 }

rcDigitalCertStoreSubjectPublicKey OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..4096))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the public key of the subject used to the 
	    	       Certificate Signing Request"
        ::= { rcDigitalCertStoreEntry 12 }

rcDigitalCertStoreHasBasicConstraint OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies whether certificate contains basic certificate constraint"
        ::= { rcDigitalCertStoreEntry 13 }

rcDigitalCertStoreHasKeyUsage OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies whether certificate contains basic key usage constraint"
        ::= { rcDigitalCertStoreEntry  14 }

rcDigitalCertStoreIsCa OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies if this is ca certificate or not"
        ::= { rcDigitalCertStoreEntry 15 }

rcDigitalCertStoreKeyUsage OBJECT-TYPE
        SYNTAX        BITS {
                             digitalSignature(0),
                             nonRepudiation(1),
                             keyEncipherment(2),
                             dataEncipherment(3),
                             keyAgreement(4),
                             keyCertSign(5),
                             cRLSign(6),
                             encipherOnly(7),
                             decipherOnly(8)
                          }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the purpose of the key used in the
                       certificate.It is represented in form of bits as follows-
                       bit 0 - digitalSignature
                       bit 1 - nonRepudiation
                       bit 2 - keyEncipherment
                       bit 3 - dataEncipherment
                       bit 4 - keyAgreement
                       bit 5 - keyCertSign
                       bit 6 - cRLSign
                       bit 7 - encipherOnly
                       bit 8 - decipherOnly"
        ::= { rcDigitalCertStoreEntry 16 }

rcDigitalCertStoreStatus OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..129))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the status of the certificate"
        ::= { rcDigitalCertStoreEntry 17 }

rcDigitalCertStoreInstalled OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies whether the certificate is installed or not"
        ::= { rcDigitalCertStoreEntry 18 }

rcDigitalCertStoreCdpUrl OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the CDP URL present in the Extensions field of 
	    	       the Digital Certificate"
        ::= { rcDigitalCertStoreEntry 19 }

rcDigitalCertStoreOcspUrl OBJECT-TYPE
        SYNTAX        RcLongDisplayString (SIZE(0..1000))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the OCSP URL present in the AIA field of the Digital Certificate"
        ::= { rcDigitalCertStoreEntry 20 }

rcDigitalCertStoreExtendedKeyUsage OBJECT-TYPE
        SYNTAX        DisplayString (SIZE(0..128))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION   "specifies the purpose for which the key may be used,
                       in addition to or in place of the basic purposes indicated 
		       in the key-usage field of the certificate"
        ::= { rcDigitalCertStoreEntry  21 }

rcDigitalCertStoreCaFileName OBJECT-TYPE
        SYNTAX         DisplayString (SIZE(0..80))
        MAX-ACCESS     read-only
        STATUS         current
        DESCRIPTION    "stores the intermediate and root Certificate Authority's certificate
                        filename obtained offline "
        ::={ rcDigitalCertStoreEntry 22 }

--
-- Digital certificate SAN section
--

rcDigitalCertSanTable OBJECT-TYPE
        SYNTAX	      SEQUENCE OF RcDigitalCertSanEntry
	MAX-ACCESS    not-accessible
	STATUS	      current
	DESCRIPTION   "table containing Subject Alternative Names used in csr generation"
	::= { rcDigitalCertObjects 6 }

rcDigitalCertSanEntry OBJECT-TYPE
        SYNTAX		RcDigitalCertSanEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION	"Subject Alternative Names table entry"
	INDEX		{ rcDigitalCertSanType, rcDigitalCertSanName }
	::= { rcDigitalCertSanTable 1 }

RcDigitalCertSanEntry ::=
	SEQUENCE {
		rcDigitalCertSanType		INTEGER,
		rcDigitalCertSanName		DisplayString,
		rcDigitalCertSanRowStatus	RowStatus
	}

rcDigitalCertSanType OBJECT-TYPE
    	SYNTAX		INTEGER {
				-- otherName(0),
				-- x400Address(3),
				-- directoryName(4),
				-- ediPartyName(5),
				-- uniformResourceIdentifier(6),
				-- registeredID(8),
				rfc822Name(1),
				dnsName(2),
				ipAddress(7)
			}
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION	"Type of current Alternative Name as per RFC 5280"
	::= { rcDigitalCertSanEntry 1 }

rcDigitalCertSanName OBJECT-TYPE
        SYNTAX		DisplayString (SIZE (1..255))
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION	"Alternative name"
	::= { rcDigitalCertSanEntry 2 }

rcDigitalCertSanRowStatus OBJECT-TYPE
    	SYNTAX		RowStatus
	MAX-ACCESS	read-create
	STATUS		current
	DESCRIPTION	"Used to create/delete entries in rcDigitalCertSanTable"
	::= { rcDigitalCertSanEntry 3 }


rcDigitalCertCaSubjTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDigitalCertCaSubjEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "Table containing all the information related to the subjects, required
                       to get the Digital Certificate from the Certificate Authority."
  ::= { rcDigitalCertObjects 7 }

 

rcDigitalCertCaSubjEntry OBJECT-TYPE
        SYNTAX        RcDigitalCertCaSubjEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION   "The entry specifies the subject
                       fields."
        INDEX          { rcDigitalCertCaSubjName }
        ::= { rcDigitalCertCaSubjTable 1 }

 

RcDigitalCertCaSubjEntry ::= SEQUENCE {
                rcDigitalCertCaSubjName               DisplayString,
        rcDigitalCertCaSubjCommonName         DisplayString,
        rcDigitalCertCaSubjEmailAddress       DisplayString,
        rcDigitalCertCaSubjOrganizationalUnit DisplayString,
        rcDigitalCertCaSubjOrganization       DisplayString,
        rcDigitalCertCaSubjLocality           DisplayString,
        rcDigitalCertCaSubjProvince           DisplayString
        }

 

rcDigitalCertCaSubjName OBJECT-TYPE
                SYNTAX        DisplayString (SIZE(1..45))
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION    "user defined name referring to the subject."
        ::= { rcDigitalCertCaSubjEntry 1 }

 
rcDigitalCertCaSubjCommonName OBJECT-TYPE
        SYNTAX        DisplayString   (SIZE(0..64))                        
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The Common Name field of the subject sending the
           Certificate Signing Request to the Certificate Authority"
        ::= {rcDigitalCertCaSubjEntry  2 }

 
rcDigitalCertCaSubjEmailAddress OBJECT-TYPE
        SYNTAX        DisplayString   (SIZE(0..254))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The Email Address of the subject sending the Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertCaSubjEntry 3 }

 
rcDigitalCertCaSubjOrganizationalUnit OBJECT-TYPE
        SYNTAX        DisplayString    (SIZE(0..64))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The Organizational Unit field of the subject sending the
           Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertCaSubjEntry 4 }

 
rcDigitalCertCaSubjOrganization OBJECT-TYPE
        SYNTAX        DisplayString    (SIZE(0..64))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The Organization of the subject sending the Certificate
           Signing Request to the Certificate Authority"
        ::= { rcDigitalCertCaSubjEntry 5 }

 
rcDigitalCertCaSubjLocality OBJECT-TYPE
        SYNTAX        DisplayString   (SIZE(0..128))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The name of the Locality of the subject sending the
           Certificate Signing Request to the Certificate Authority"
        ::= { rcDigitalCertCaSubjEntry 6 }

 

rcDigitalCertCaSubjProvince  OBJECT-TYPE
        SYNTAX        DisplayString   (SIZE(0..128))
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION   "The Province name of the subject sending the Certificate
           Signing Request to the Certificate Authority"
        ::= { rcDigitalCertCaSubjEntry 7 }
END
