<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Example: ILE RPG program for clearing a function control vector from your Coprocessor" />
<meta name="abstract" content="Change this program example to suit your needs for clearing a function control vector from your Coprocessor." />
<meta name="description" content="Change this program example to suit your needs for clearing a function control vector from your Coprocessor." />
<meta name="DC.Relation" scheme="URI" content="rzajccontrolvector.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="clearfcvrpg" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Example: ILE RPG program for clearing a function control vector from
your  Coprocessor</title>
</head>
<body id="clearfcvrpg"><a name="clearfcvrpg"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Example: ILE RPG program for clearing a function control vector from
your  Coprocessor</h1>
<div><p>Change this program example to suit your needs for clearing a function
control vector from your  Coprocessor. </p>
<div class="section"><div class="note"><span class="notetitle">Note:</span> Read the <a href="codedisclaimer.htm#codedisclaimer">Code license and disclaimer information</a> for
important legal information.</div>
</div>
<div class="example"> <pre>     D*************************************************************
     D* CLEARFCV
     D*
     D* Clear the Function Control Vector from the  card.
     D* The Function Control Vector enables the cryptographic
     D* functions of the  card.  Clearing it from the 
     D* disabled the cryptographic functions.
     D*
     D*
     D* COPYRIGHT 5769-SS1 (C) IBM CORP. 2000, 2000
     D*
     D* This material contains programming source code for your
     D* consideration.  These example has not been thoroughly
     D* tested under all conditions.  IBM, therefore, cannot
     D* guarantee or imply reliability, serviceability, or function
     D* of these programs.  All programs contained herein are
     D* provided to you "AS IS".  THE IMPLIED WARRANTIES OF
     D* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     D* ARE EXPRESSLY DISCLAIMED.  IBM provides no program services for
     D* these programs and files.
     D*
     D*
     D* Note: Input format is more fully described in Chapter 2 of
     D*       IBM  CCA Basic Services Reference and Guide
     D*       (SC31-8609) publication.
     D*
     D* Parameters: None
     D*
     D* Example:
     D*  CALL PGM(CLEARFCV)
     D*
     D* Use these commands to compile this program on the system:
     D* CRTRPGMOD MODULE(CLEARFCV) SRCFILE(SAMPLE)
     D* CRTPGM  PGM(CLEARFCV) MODULE(CLEARFCV)
     D*         BNDSRVPGM(QCCA/CSUACFC)
     D*
     D* Note: Authority to the CSUACFC service program in the
     D*       QCCA library is assumed.
     D*
     D* The Common Cryptographic Architecture (CCA) verbs used are
     D* Cryptographic_Facilty_Control (CSUACFC)
     D*
     D**************************************************************
     D*----------------------------------------------------
     D* Declare variables used on CCA SAPI calls
     D*----------------------------------------------------
     D*                **  Return code
     DRETURNCODE       S              9B 0
     D*                **  Reason code
     DREASONCODE       S              9B 0
     D*                **  Exit data length
     DEXITDATALEN      S              9B 0
     D*                **  Exit data
     DEXITDATA         S              4
     D*                **  Rule array count
     DRULEARRAYCNT     S              9B 0
     D*                **  Rule array
     DRULEARRAY        S             16
     D*                **  Verb data length
     DVERBDATALEN      S              9B 0
     D*                **  Verb data
     DVERBDATA         S             16
     D*
     D*
     D**********************************************************
     D* Prototype for Cryptographic_Facilty_Control (CSUACFQ)
     D**********************************************************
     DCSUACFC          PR
     DRETCODE                         9B 0
     DRSNCODE                         9B 0
     DEXTDTALEN                       9B 0
     DEXTDTA                          4
     DRARRAYCT                        9B 0
     DRARRAY                         16
     DVRBDTALEN                       9B 0
     DVRBDTA                         10
     D*
     D*-------------------------------------------------------------
     D*                **  Declares for sending messages to the
     D*                **  job log using the QMHSNDPM API
     D*-------------------------------------------------------------
     DMSG              S             75    DIM(2) CTDATA PERRCD(1)
     DMSGLENGTH        S              9B 0 INZ(75)
     D                 DS
     DMSGTEXT                  1     75
     DFAILRETC                41     44
     DFAILRSNC                46     49
     D*                **  Variables required for the QMHSNDPM API
     DMESSAGEID        S              7    INZ('       ')
     DMESSAGEFILE      S             21    INZ('                     ')
     DMSGKEY           S              4    INZ('    ')
     DMSGTYPE          S             10    INZ('*INFO     ')
     DSTACKENTRY       S             10    INZ('*         ')
     DSTACKCOUNTER     S              9B 0 INZ(2)
     DERRCODE          DS
     DBYTESIN                  1      4B 0 INZ(0)
     DBYTESOUT                 5      8B 0 INZ(0)
     D*
     C**************************************************************
     C* START OF PROGRAM                                           *
     C*                                                            *
     C*------------------------------------------------------------*
     C* Set the keyword in the rule array                          *
     C*------------------------------------------------------------*
     C                   MOVEL     'ADAPTER1'    RULEARRAY
     C                   MOVE      'CLR-FCV '    RULEARRAY
     C                   Z-ADD     2             RULEARRAYCNT
     C*------------------------------------------------------------*
     C* Set the verb data length to 0                              *
     C*------------------------------------------------------------*
     C                   Z-ADD     0             VERBDATALEN
     C*------------------------------------------------------------*
     C* Call Cryptographic Facilty Control SAPI
     C*------------------------------------------------------------*
     C                   CALLP     CSUACFC       (RETURNCODE:
     C                                            REASONCODE:
     C                                            EXITDATALEN:
     C                                            EXITDATA:
     C                                            RULEARRAYCNT:
     C                                            RULEARRAY:
     C                                            VERBDATALEN:
     C                                            VERBDATA)
     C*-----------------------*
     C* Check the return code
     C*-----------------------*
     C     RETURNCODE    IFGT      0
     C*             *------------------------*
     C*             * Send a failure message *
     C*             *------------------------*
     C                   MOVE      MSG(1)        MSGTEXT
     C                   MOVE      RETURNCODE    FAILRETC
     C                   MOVE      REASONCODE    FAILRSNC
     C                   EXSR      SNDMSG
     C*
     C                   ELSE
     C*             *------------------------*
     C*             * Send a Success message *
     C*             *------------------------*
     C                   MOVE      MSG(2)        MSGTEXT
     C                   EXSR      SNDMSG
     C*
     C                   ENDIF
     C*
     C                   SETON                                            LR
     C*
     C**************************************************************
     C* Subroutine to send a message
     C**************************************************************
     C     SNDMSG        BEGSR
     C                   CALL      'QMHSNDPM'
     C                   PARM                    MESSAGEID
     C                   PARM                    MESSAGEFILE
     C                   PARM                    MSGTEXT
     C                   PARM                    MSGLENGTH
     C                   PARM                    MSGTYPE
     C                   PARM                    STACKENTRY
     C                   PARM                    STACKCOUNTER
     C                   PARM                    MSGKEY
     C                   PARM                    ERRCODE
     C                   ENDSR
     C*
**
CSUACFC failed with return/reason codes 9999/9999'
The request completed successfully</pre>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzajccontrolvector.htm" title="The function control vector tells the Cryptographic Coprocessor what key length to use to create keys. You cannot perform any cryptographic functions without loading a function control vector.">Load a function control vector</a></div>
</div>
</div>
</body>
</html>