Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions wolfCrypt-JNI/src-ja/chapter01.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# イントロダクション


JCE (Java Cryptography Extension) フレームワークは、カスタムの暗号化サービス プロバイダーのインストールをサポートします。この仕組みにより、Java セキュリティ API によって使用される基本的な暗号化機能のサブセットを実装できます。
JCE (Java Cryptography Extension) 、カスタムの暗号化サービス プロバイダーのインストールをサポートします。この仕組みにより、Java セキュリティ API によって使用される基本的な暗号化機能のサブセットを実装できます。

このドキュメントでは、wolfCrypt JCE プロバイダーの詳細と使用方法について説明します。 wolfCrypt JCE プロバイダー (wolfJCE) は、ネイティブの wolfCrypt 暗号化ライブラリーをラップして、Java Security API との互換性を確保します。 [こちら](https://github.com/wolfSSL/wolfcrypt-jni)のGithubリポジトリを参照してください。
このマニュアルでは、wolfCrypt JCE プロバイダーの詳細と使用方法について説明します。 wolfCrypt JCE プロバイダー (wolfJCE) は、ネイティブの wolfCrypt 暗号化ライブラリーをラップして、Java Security API との互換性を確保します。 wolfCrypt JNI/JCEについては、[こちら](https://github.com/wolfSSL/wolfcrypt-jni)のGithubリポジトリを参照してください。

wolfcrypt-jni パッケージには、JCE プロバイダーに加えて、wolfCrypt JNI ラッパーの両方が含まれています。 JNI ラッパーは、必要に応じて単独で使用できます。
wolfcrypt-jni パッケージには、JCE プロバイダーとwolfCrypt JNI ラッパーの両方が含まれています。 JNI ラッパーは、必要に応じて単独で使用できます。
51 changes: 26 additions & 25 deletions wolfCrypt-JNI/src-ja/chapter02.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,49 @@
# システム要件

## Java / JDK
wolfJCE では、ホストシステムに Java をインストールする必要があります。 Oracle JDK や OpenJDK など、ユーザーや開発者が利用できる JDK バリアントがいくつかあります。 wolfJCE は現在、OpenJDK、Oracle JDK、および Android でテストされています。 OpenJDK と Android では、JCE プロバイダーがコード署名されている必要はありませんが、Oracle JDK では必要です。 コード署名の詳細については、[第 7 章](chapter07.md#jar-code-signing)を参照してください。

参考までに、wolfJCE がテストされた OpenJDK の特定のバージョンは次のとおりです:
wolfJCE では、ホストシステムに Java をインストールする必要があります。 Oracle JDK や OpenJDK など、ユーザーや開発者が利用できる JDK バリアントがいくつかあります。 wolfJCEは現在、OpenJDK、Oracle JDK、Amazon Coretto、Zulu、Temurin、Microsoft JDK、およびAndroidでテストされています。OpenJDK と Android では、JCE プロバイダーがコード署名されている必要はありませんが、Oracle JDK では必要です。 コード署名の詳細については、[第 7 章](chapter07.md#jar-code-signing)を参照してください。


```
$ java -version
Openjdk version “1.8.0_91”
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1~b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
```
また、Oracle JDK 1.8.0_121 および Android 24 でもテストされています。

## JUnit
単体テストを実行するには、JUnit が開発システムにインストールされている必要があります。 JUnit は、プロジェクトの Web サイト (www.junit.org) からダウンロードできます

Unix/Linux/OSX システムに JUnit をインストールするには:
1. [junit.org/junit4/]() から "**junit-4.13.jar**" と "**hamcrest-all-1.3.jar**" をダウンロードします。 執筆時点では、前述の .jar ファイルは次のリンクからダウンロードできます:
単体テストを実行するには、JUnit4 が開発システムにインストールされている必要があります。 JUnit4 は、プロジェクトの Web サイト (www.junit.org) からダウンロードできます

Unix/Linux/OSX システムに JUnit4 をインストールするには:
1) [junit.org/junit4/]() から "**junit-4.13.jar**" と "**hamcrest-all-1.3.jar**" をダウンロードします。 執筆時点では、前述の .jar ファイルは次のリンクからダウンロードできます:

リンク: [junit-4.13.jar](https://search.maven.org/search?q=g:junit%20AND%20a:junit)<br>
リンク: [hamcrest-all-1.3.jar](https://search.maven.org/artifact/org.hamcrest/hamcrest-all/1.3/jar)
Junit: [junit-4.13.jar](https://search.maven.org/search?q=g:junit%20AND%20a:junit)

2. これらの JAR ファイルをシステムに配置し、その場所を指すように `JUNIT_HOME` を設定します:
Hamcrest: [hamcrest-all-1.3.jar](https://search.maven.org/artifact/org.hamcrest/hamcrest-all/1.3/jar)

2) これらの JAR ファイルをシステムに配置し、その場所を指すように `JUNIT_HOME` を設定します:

```
$ export JUNIT_HOME=/path/to/jar/files
$ export JUNIT_HOME=/path/to/jar/files
```

## make と ant

"make" と "ant" は、それぞれネイティブ C コードと Java コードのコンパイルに使用されます。

これらが開発マシンにインストールされていることを確認してください。


## wolfSSL / wolfCrypt ライブラリ

ネイティブ wolfCrypt ライブラリのラッパーとして、wolfSSL をホスト プラットフォームにインストールし、インクルードおよびライブラリ検索パスに配置する必要があります。 wolfJCE は、wolfSSL/wolfCrypt ネイティブ ライブラリの FIPS または非 FIPS バージョンに対してコンパイルできます。
ネイティブ wolfCrypt ライブラリのラッパーとして、[wolfSSL](https://wolfssl.jp/products/wolfssl/) をインストールし、インクルードおよびライブラリ検索パスに配置する必要があります。 wolfJCE は、wolfSSL/wolfCrypt ネイティブ ライブラリの FIPS 140-2/3 または非 FIPS バージョンに対してコンパイルできます。


### wolfSSL / wolfCrypt のコンパイル

wolfJCE で使用するために Unix/Linux 環境で wolfSSL をコンパイルおよびインストールするには、wolfSSL マニュアルのビルド手順に従ってください。 wolfSSL をコンパイルする最も一般的な方法は、Autoconf システムを使用することです。
Unix/Linux 環境で wolfSSL をコンパイルおよびインストールするには、[wolfSSL マニュアル](https://www.wolfssl.com/documentation/manuals/jp/wolfssl/)のビルド手順に従ってください。 wolfSSL をコンパイルする最も一般的な方法は、Autoconf システムを使用することです。

wolfSSL (wolfssl-x.x.x)、wolfSSL FIPS リリース (wolfssl-x.x.x-commercial-fips)、または wolfSSL FIPS Ready リリースをインストールできます。いずれの場合も、 ./configure スクリプト実行時に`--enable-keygen` オプションが必要です
wolfSSL (wolfssl-x.x.x)、wolfSSL FIPS リリース (wolfssl-x.x.x-commercial-fips)、または wolfSSL FIPS Ready リリースをビルドし、インストールできます。いずれの場合も、 ./configure スクリプト実行時にパッケージ固有のconfigureオプション要件(例:`--enable-fips`)に加えて、`--enable-jni` を使用する必要があります


**wolfSSL 標準ビルド**:
```
$ cd wolfssl-x.x.x
$ ./configure --enable-keygen
$ ./configure --enable-jni
$ make check
$ sudo make install
```
Expand All @@ -60,7 +52,7 @@ $ sudo make install

```
$ cd wolfssl-x.x.x-commercial-fips
$ ./configure --enable-fips --enable-keygen
$ ./configure --enable-fips --enable-jni
$ make check
$ sudo make install
```
Expand All @@ -69,7 +61,16 @@ $ sudo make install

```
$ cd wolfssl-x.x.x-commercial-fips
$ ./configure --enable-fips=v2 --enable-keygen
$ ./configure --enable-fips=v2 --enable-jni
$ make check
$ sudo make install
```

**wolfSSL FIPSv5 ビルド**:

```
$ cd wolfssl-x.x.x-commercial-fips
$ ./configure --enable-fips=v5 --enable-jni
$ make check
$ sudo make install
```
Expand All @@ -78,7 +79,7 @@ $ sudo make install

```
$ cd wolfssl-x.x.x-commercial-fips
$ ./configure --enable-fips=ready --enable-keygen
$ ./configure --enable-fips=ready --enable-jni
$ make check
$ sudo make install
```
Expand Down
15 changes: 10 additions & 5 deletions wolfCrypt-JNI/src-ja/chapter03.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,15 @@ Mac OSXにインストールする場合:
$ cd wolfcrypt-jni
$ cp makefile.macosx makefile
```
次に、 "make" を使用してネイティブ (C ソース) コードをコンパイルします:

次に、 "make" を使用してネイティブ (C ソース) コードをコンパイルします。
これにより、ネイティブJNI共有ライブラリ(`libwolfcryptjni.so/dylib`)が生成されます:

```
$ cd wolfcrypt-jni
$ make
```

Java ソースのコンパイルには "ant" を使用します。 JNI または JCE (JNI を含む) パッケージをデバッグ モードまたはリリース モードでコンパイルするための ant ターゲットがいくつかあります。 ターゲットを指定せずに "ant" を実行すると、使用オプションが表示されます:


Expand All @@ -40,18 +43,20 @@ build:
[echo] build-jce-release | builds release JAR with JNI and JCE classes
[echo] ----------------------------------------------------------------------------
```

必要に応じてビルドターゲットを指定してください。 たとえば、リリース モードで wolfJCE プロバイダーをビルドする場合は、次を実行します:

```
$ ant build-jce-release
```
また、JUnit テストを実行するには、次のコマンドを実行します。 これにより、実行されたビルド (JNI と JCE) に一致するテストのみがコンパイルされ、それらのテストも実行されます。

JUnitテストを実行するには、`ant test` を実行してください。これにより、実行されたビルド(JNIとJCE)に一致するテストのみがコンパイル、実行されます。

```
$ ant test
```
Java JAR とネイティブ ライブラリの両方を消去するには:

Java JAR とネイティブ ライブラリの両方を消去するには、次のようにします:

```
$ ant clean
Expand All @@ -60,6 +65,6 @@ $ make clean

## APIマニュアル(Javadoc)

`ant` を実行すると、`wolfcrypt-jni/docs` ディレクトリの下に一連の Javadoc が生成されます。 ルートドキュメントを表示するには、Web ブラウザで次のファイルを開きます:
`ant` を実行すると、`wolfcrypt-jni/docs/javadoc` ディレクトリの下に一連の Javadoc が生成されます。 Javadocインデックスを表示するには、Web ブラウザで次のファイルを開きます:

`wolfcrypt-jni/docs/index.html`
`wolfcrypt-jni/docs/javadoc/index.html`
66 changes: 39 additions & 27 deletions wolfCrypt-JNI/src-ja/chapter04.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,81 @@
# インストール

wolfJCE をインストールして使用するには、次の 2 つの方法があります:
wolfJCEをインストールして使用する方法は2つあります - 1つは単一のJavaアプリケーション内での実行時、もう1つは全てのJavaアプリケーションが使用するためのシステムレベルです。


## 実行時インストール

実行時に wolfJCE をインストールして使用するには、まず "**libwolfcryptjni.so**" がシステムのライブラリ検索パスにあることを確認してください。 Linux では、このパスを次のようにして変更できます:
単一のアプリケーション内での実行時にwolfJCEをインストールして使用するには、まず「**libwolfcryptjni.so**」(MacOSの場合は「**libwolfcryptjni.dylib**」)がシステムのライブラリ検索パスにあることを確認してください。
Linuxでは、このパスを次のようにして変更できます:

```
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/add
```

MacOSでは、代わりに `DYLD_LIBRARY_PATH` を使用できます:

```
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/add
$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/path/to/add
```
次に、wolfCrypt JNI / wolfJCE JAR ファイル (**wolfcrypt-jni.jar**) を Java クラスパスに配置します。 これを行うには、システムのクラスパス設定を調整するか、コンパイル時と実行時に次のようにします:

次に、wolfCrypt JNI / wolfJCE JAR ファイル (**wolfcrypt-jni.jar**) を Java クラスパスに配置します。 これを行うには、システムのクラスパス設定を調整するか、コンパイル時と実行時に次のようにします:

```
$ javac -classpath <path/to/jar> ...
$ java -classpath <path/to/jar> ...
$ javac -classpath <path/to/jar> ...
$ java -classpath <path/to/jar> ...
```
最後に、Java アプリケーションで、プロバイダークラスをインポートし、Security.addProvider() を呼び出して、実行時にプロバイダーを追加します:

最後に、Javaアプリケーションで、プロバイダークラスをインポートし、`Security.insertProviderAt()` を呼び出してwolfCryptProviderをJavaプロバイダーリストの最上位優先プロバイダーとして挿入することで、実行時にプロバイダーを追加してください。
プロバイダーの位置1が最も優先度の高い位置であることにご注意ください。

```
import com.wolfssl.provider.jce.WolfCryptProvider;
public class TestClass {
public static void main(String args[]) {
...
Security.addProvider(new WolfCryptProvider());
...
}
}
import com.wolfssl.provider.jce.WolfCryptProvider;

public class TestClass {
public static void main(String args[]) {
...
Security.insertProviderAt(new WolfCryptProvider(), 1);
...
}
}
```

検証のためにインストールされているすべてのプロバイダーのリストを出力するには、次のようにします:

```
Provider[] providers = Security.getProviders()
for (Provider prov:providers) {
System.out.println(prov);
}
Provider[] providers = Security.getProviders()
for (Provider prov:providers) {
System.out.println(prov);
}
```

## OS / システムレベルでのインストール

システム レベルで wolfJCE プロバイダーをインストールするには、JAR を OS の正しい Java インストール ディレクトリにコピーし、共有ライブラリがライブラリ検索パスにあることを確認します。
## OS / システムレベルでのインストール (Java 8以下)

wolfJCE JAR ファイル (**wolfcrypt-jni.jar**) と共有ライブラリ (**libwolfcryptjni.so**) を次のディレクトリに追加します:
wolfJCEはシステムレベルでインストールできるため、暗号化にJava Security APIを使用するあらゆるJavaアプリケーションがwolfJCEを活用できます。
wolfJCEプロバイダーをシステムレベルでインストールするには、JARをお使いのOSとJDKに対応した正しいJavaインストールディレクトリにコピーし、共有ライブラリがライブラリ検索パスにあることを確認します。

wolfCrypt JNI/JCE JARファイル(**wolfcrypt-jni.jar**)と共有ライブラリ(**libwolfcryptjni.so** または **libwolfcryptjni.dylib**)を以下のディレクトリに追加してください:

```
$JAVA_HOME/jre/lib/ext directory
$JAVA_HOME/jre/lib/ext
```

たとえば、OpenJDK を使用する Ubuntu では、次のようになります:

```
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext
```
さらに、次のようなエントリを java.security ファイルに追加します:

次に、以下のように `java.security` ファイルにWolfCryptProviderのプロバイダーエントリを追加してください:

```
security.provider.N=com.wolfssl.provider.jce.WolfCryptProvider
```
ava.security ファイルは次の場所にあります:

java.security ファイルは次の場所にあります:

```
$JAVA_HOME/jre/lib/security/java.security
```
"N" を、ファイル内の他のプロバイダーと比較して WolfCryptProvider に持たせたい優先順位に置き換えます。

"N" を、ファイル内の他のプロバイダーと比較して WolfCryptProvider に持たせたい優先順位に置き換えます。
Loading