プログラムを ICSF 呼び出し可能サービスにリンク
C、COBOL、アセンブラー、および PL/I の言語用の ICSF 呼び出し可能サービスを使用するサンプル・ルーチンについては、コーディング例を参照してください。
ICSF には、ICSF 呼び出し可能サービスをアプリケーション・プログラムにリンクするために 2 つの方法が用意されています。 以下の該当するサンプルを使用してください。
OS リンケージを使用するアプリケーションの場合 (COBOL、アセンブラー H、PL/I など)
リンク・エディット・ステップの SYSLIB 連結に CSF.SCSFMOD0 モジュールを組み込みます。 これにより、アプリケーション・プログラムはすべての ICSF 呼び出し可能サービス (AMODE(24)/AMODE(31) で呼び出し可能なサービス、および AMODE(64) で呼び出し可能なサービス) にアクセスできます。
//LKEDENC JOB
//*-----------------------------------------------------------------*
//* *
//* The JCL links the ICSF encipher callable service, CSNBENC, *
//* into an application called ENCIPHER. *
//* *
//*-----------------------------------------------------------------*
//LINK EXEC PGM=IEWL,
// PARM='XREF,LIST,LET'
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(10,10))
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=CSF.SCSFMOD0,DISP=SHR * SERVICES ARE IN HERE
//SYSLMOD DD DSN=MYAPPL.LOAD,DISP=SHR * MY APPLICATION LIBRARY
//SYSLIN DD DSN=MYAPPL.ENCIPHER.OBJ,DISP=SHR * MY ENCIPHER PROGRAM
// DD *
ENTRY ENCIPHER
NAME ENCIPHER(R)
/*
C/C++ で書かれたアプリケーションの場合
以下のダイナミック・リンク・ライブラリー (DLL) が SYS1.SIEALNKE にリンクされます。
- CSFDLL31
- 31 ビット・アドレッシング・モードの ICSF サービス。
- CSFDLL64
- 64 ビット・アドレッシング・モードの ICSF サービス。
- CSFDLL3X
- XPLINK を使用した 31 ビット・アドレッシング・モードの ICSF サービス。
他の DLL と同様に、適切なサイド・デックとリンクしてください。
例えば、64 ビット・アドレッシング・モードで実行されるアプリケーションとリンクするには、C/C++ アプリケーション内のサービス・プロトタイプのヘッダーを
#include <csfbext h>
に組み込み、通常どおりコンパイルします。
最後に、以下をリンクします。
c89 -Wc,dll,lp64 -Wl,dll,lp64 -o MyApplication MyApp_main.o MyApp_support.o
/usr/lpp/pkcs11/lib/CSFDLL64.x
C/C++ アプリケーションのコンパイルおよびリンクについて詳しくは、z/OS Cryptographic Services ICSF Writing PKCS #11 Applicationsの付録 A (SMP/E インストール・データ・セット、ディレクトリー、およびファイル) を参照してください。