OpenSSL

RSA 署名と検証

私密鍵(private key)で何らかのデータを署名する.この署名を証明書(certification)に含まれている公開鍵(public key)で検証する. 準備するもの Shining Light版 OpenSSL 1.0.0a Visual Studio 2008 Express Edition Windows XP openssl.exe で鍵を作…

EVP_PKEY * を経由しない RSA * 読み込み方法

rsaCodec.cpp ではPEMファイルからRSA *を取り出すために,EVP_PKEY *で取り出した後,変換していた. // 次2行 rsaCodec での処理 EVP_PKEY *epubKey = PEM_read_PUBKEY( fp, NULL, NULL, NULL ); RSA *rpubKey = EVP_PKEY_get1_RSA( epubKey ); // 次2行 r…

sha256c クラスは考え直すべき

書き直した.SHA256_Final() を呼ぶ度にハッシュが変わってしまう.sha256c というクラスを作った - BiBoLoG を書き直した.assert() を使って,プログラムを書いて,デバッグしているときに止めるようにした.一旦 final したなら,再利用はできないよ,ini…

公開鍵を読み込んで表示する

PEM_read_RSAPublicKey を運用できなかった.http://ml.tietew.jp/cppll/cppll_novice/thread_articles/446 の PEM_read_PUBKEY と EVP_PKEY_get1_RSA を利用するようにって事を適用したら解決できた.エラーコードという言葉もあるが,こちらは分からない.…

sha256c というクラスを作った

コメントを書き込まなきゃな.javadoc 形式なりなんなり. main.cpp #include "sha256c.h" int main ( int argc, char *argv[] ) { sha256c s; s.classtest(); return 0; } sha256.h #pragma once #ifdef _DEBUG #pragma comment(lib, "libeay32MDd.lib") #p…

ハッシュ計算をクラス化できなかった

自己解決できた.showHash() するときは SHA256_Final() 済みとは限らない,というのが問題だった.showHash() の最初に SHA256_Final() して解決した.何がいけないのかわからない.SHA256_Final() して hash に入るデータが32個すべて204になる. #ifdef _…

SHA-256 ハッシュ計算

RAND_bytes() で作ったデータを入力しても,コードの正確性は測れない.次の情報を入手したから,これに沿う結果が得られるかを確認する.RFC を参照するべきだろうが,test vector を記載した文書を見つけることができなかった. SHA-256 Test Vector The W…

RSA 鍵ペアの作成とその内容表示コマンド

暗号化に使用する鍵ペア pKey.pem pubKey.pem 秘密鍵 pKey.pem 作成 openssl genpkey -out pKey.pem -outform pem -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 +秘密鍵表示 openssl rsa -inform pem -in pKey.pem -text…

秘密鍵を読み込んで内容を画面に表示するプログラム

道具 openssl 1.0.0a Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 資料 RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u); http://www.openssl.org/docs/crypto/pem.html int RSA_print_fp(FILE …

genpkey で秘密鍵を作る

後述するプログラムが上手く動かないからコマンドラインで作る. 道具 openssl 1.0.0a Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 資料 NAME genpkey - generate a private key SYNOPSIS openssl genpkey [-out filename] [-ou…

ビルドした OpenSSL を使ってみる

VC++ で空のプロジェクトを作成する.試みに使用するだけで,簡単なのがいいなと考え,RAND_write_file() を選んだ.return 0; の行にブレークポイントを設定して様子を見る.ret には 1024 が入った.ランダムなデータがきっかり 1024 バイトある a.txt が…

OpenSSL 1.0.0a を VC++ で使用するためのソースコンパイルとインストールの手順

産業 perl Configure VC-WIN32 --prefix=C:\Software\Develop\OpenSSL\1.0.0a ms\do_nasm nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak test nmake -f ms\ntdll.mak install VC++ に include と lib へのパスを通す #pragma comment(lib, "libeay32.lib") #…

OpenSSL 0.9.8l ビルドメモ(DELL Vostro 400 Core 2 Quad Q6600)

また OpenSSL 0.9.6l をビルドした.RSA-PSS を使いたいのだけれど,/docs/manmaster/man1/pkeyutl.html は利用できない.Re: OAEP for signatures and PSS を見ると,0.9.9 開発版でなら使えるよ,と.しかし今メンテナンスされているのは 0.9.8 であるから…

OpenSSL 0.9.8l ビルドメモ(Acer AOA150-BC1 Atom N270)

Camellia も使えるみたいだった.perl Configure の入力順を厳格にチェックされていたのだろうか. perl Configure enable-camellia --prefix=c:/software/develop/openssl/0.9.8l VC-WIN32 ms\do_nasm.bat nmake -f ms\nt.mak nmake -f ms\nt.mak test nmak…

OpenSSL で RSA 署名をする方法

「padding した私有鍵で暗号化すること」で達成できる様だ. 2004-08-02 RSA_public_encrypt (1024bit) OpenSSL addition a postscript libgcryptだけでなく、OpenSSLにも大きな数字を扱う関数(bn - multiprecision integer arithmetics)が用意されていた。 …

OpenSSL 0.9.8l ビルドメモ(自作機 Core 2 Duo E6300)

INSTALL.W32 に従って進めていたら,nmake -f ms\nt.mak が「return "OPENSSLDIR: \"" OPENSSLDIR "\"";」と出て,こけた.Ruby-1.8.7_p160 openssl編 - Kazzzの日記 の情報で解決した.perl Configure するとき,--prefix で与えるディレクトリの区切り文字…

Beta 4 of OpenSSL 1.0.0 ビルドメモ(DELL Vostro 400 Core 2 Quad Q6600)

doskey /history を知った. 概要 VC++ 2008 EE でビルド可能だった 事前の微調整は必要 既定で Camellia を含んでいる pkeyutl が使用可能 手順 perl Configure --prefix=C:/Software/Develop/OpenSSL/1.0.0beta4 VC-WIN32 ms\do_nasm.bat nmake -f ms\nt.m…

OpenSSL と RSA-PSS

OpenSSL を使って,あるデータに RSA 署名を付けようとした.方法や仕組みを理解するために,情報を探した.電子証明書の認証局を省略すると,自己署名証明書を添え付けるらしい.私有鍵という後は private key を表す.*1手順はこうなるか.前半部はデータ…

OpenSSL の証明書関連

OpenSSLライブラリを使ってプログラミング(1) - 再帰の反復blog OpenSSLライブラリを使ってプログラミング(2) 証明書・検証についての予備知識 - 再帰の反復blog OpenSSLライブラリを使ってプログラミング(3) 証明書・検証 - 再帰の反復blog http://www-aila…

「自己署名証明書を作りたい。」のメモ

OpenSSL Command-Line HOWTO - nona.to fswiki を見た.自己署名証明書を作る. openssl req -x509 -nodes -days 365 -subj /C=JP/ST=Tokyo/L=Ota/CN=server.example.com -newkey rsa:2048 -keyout privatekey.pem -out cert.pem Loading 'screen' into rand…

OpenSSL で 32バイトを enc -aes-128-cbc した結果が48バイトになったという不思議

原因は -nopad オプションをつけていなかったこと.増えた16バイトは付加的なパディング.情報源としたところではちゃんと -nopad をつけていた.OpenSSL の使い方は http://d.hatena.ne.jp/hnko/20090302/1235977892 を参考にした. OpenSSL> enc -aes-128-…

OpenSSL ライブラリを利用したプログラム開発の問題解決

こんなエラーが出る. 1>------ ビルド開始: プロジェクト: keyPairOut, 構成: Debug Win32 ------ 1>コンパイルしています... 1>main.cpp 1>c:\software\develop\openssl\include\openssl\x509.h(207) : error C2143: 構文エラー : ')' が '定数' の前にあ…

OpenSSL 1.0.0 Beta 3 のビルドまとめ

できるの? できる. 方法は? 準備するもの Visual C++ 2008 Express Edition Windows SDK(たぶん不要) Active Perl 5.10.0 http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ NASM 2.07 NASM 手順 openssl-1.0.0-beta3.tar.gz を /index.html か…

OpenSSL 1.0.0 Beta 3 のビルド試行 - test 不能に関するメモ

md2test に失敗している C:\openssl-1.0.0-beta3\out32dll にテスト用ファイルが多種生成されているうちの一つとして実行をしているらしい md2test.exe は生成されていない.md4test.exe,md5test.exe などはある nmake ファイル ntdll.mak 20行目 CFLAG に …

OpenSSL 1.0.0 Beta 3 のビルド試行 - 完走?

「問題解決編」でビルドはしたが,test と install はしていなかった. nmake -f ms\ntdll.mak test nmake -f ms\ntdll.mak install ってあれー?test が途中終了しているぞ.どうしよう.nmake /a /f ms\ntdll.mak > c:\make.txt しよう(参考).436kb,18…

OpenSSL 1.0.0 Beta 3 のビルド試行 - 問題解決編

文字コードが合わなかったためにビルドが失敗していた.修正後改めて nmake -f ms\ntdll.mak した.C:\openssl-1.0.0-beta3\engines\ccgost\gost_crypt.c の50-66行. EVP_CIPHER cipher_gost = { NID_id_Gost28147_89, 1,/*block_size*/ 32,/*key_size*/ 8,…

OpenSSL 1.0.0 Beta 3 のビルド試行 - 不能

準備 Visual C++ 2008 Express Edition Windows SDK Active Perl 5.10.0 http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ NASM 2.07 NASM 手順 openssl-1.0.0-beta3.tar.gz を /index.html から取得し,c:/ に展開 INSTALL.W32 を読む mkdir c:\Ope…

OpenSSL メモ

調査対象 OpenSSL 0.9.8a の Unix アーキテクチャ(ただし、過去の経緯を探るため過去のバージョンも適宜、調査予定) https://www.codeblog.org/WGopenssl.html 作成中、 あとがき どういうケースで使うか? サンプル サンプル/証明書の読み込みと表示 サンプ…

一連の OpenSSL 利用失敗まとめ

旧版を利用することでなんとかした. これまでのエントリ OpenSSL ライブラリを利用するプログラム開発のためのメモ - BiBoLoG OpenSSL 使用トラブル - BiBoLoG OpenSSL をビルドする - BiBoLoG 対応策:旧版,0.9.7m の利用 これまでにインストールしたファ…

OpenSSL をビルドする

Visual C++ 2008 Express Edition でビルドできた.手順は C:\openssl-0.9.8k\INSTALL.W32 に従った.気になるのは Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions で配布されているバイナリインストーラを実行した場合と生成物が…