C/400

34. SSL を V4R4M0 以上で開発するには?

SSL(Secure Socket Layer) でセキュアな TCP/IP接続を V4R4M0 でも開発したい。
しかし SSL をユーザーで開発しようとすると V5R1M0 からの GSKit が必要であるので
V5R1M0 以上でないと開発は無理なのであろうか?
ソフトウェア・パッケージの開発ではできるだけ下位リリースの OS400もサポートしたい。
方法がひとつだけあるのでここで紹介する。

IBM は IBM HTTPサーバーは V4R1M0 より SSL をサポートしていると公言している。
だとしたら SSL をサポートしているサービス・プログラム(*SRVPGM) がどこかに存在している
はずである。
調べてみると SSL をサポートしている *SRVPGMQSYS/QSOSSLSR という名前の
*SRVPGM であることが判明した。
実は V5R1M0 からの GSKit も QSYS/QSOSSLSR のプロシージャーが増えただけのことで
ある。
SSL を開発するには GSKit でなくても SSL_API も提供されており、 SSL_API の中身は、
やはり QSYS/QSOSSLSR である。
例えば V4R4M0 では SSL_API のプロトタイプ関数の H 仕様書は存在していないが
V5R4M0 などの APIマニュアルを参照すれば関数の詳細も知ることができる。
従って V4R4M0 などの下位リリースでは、関数のプロトタイプだけ自分で定義してから
QSYS/QSOSSLSR *SRVPGM をバインドしてコンパイルすれば IBM と同じように
SSL によるセキュアな TCP/IP通信を実現することができる。
調べてはいないが恐らくは V4R1M0 以上であれば SSL の開発は可能となるであろう。

このように *SRVPGM さえ特定してしまえば比較的低いリリースであってもIBM と同じような
高度な開発を可能にかることができるのである。
EnterpriseServer Ver4.0 では、この手法によって SSL をサポートする予定である。