永遠のプログラマ☆

還暦過ぎてもプログラマ(40年)

c++ wsprintf 1024バイト制限でハマる☆

こんにちは。

寒さと花粉。

どっちもイヤ(^。^)


さて、

Visual Studio c++で書いたツール(dll)。

ファイル名が長いと、動きがおかしくなると不具合報告。

 うーむ。

一日中悩む。勘悪し。


犯人は、wsprintfの出力バッファ。

1024バイトでカットされる。

知らなかった。。。

後ろの文字が消えてた。


dll内でのwsprintfの使用数。

なんと400個以上。


うち、オーバーする恐れの箇所は。。。。


二個だけでした。







Windows 2019 Server ダウンロード開始☆

こんにちは。

現状、仕事で使うOSは以下の通り。

Windows Server 2008/2012/2016。

Windows 7/8/10。

CentOS7.x

z/OS 2.x

 

Windows 2019 Server いつダウンロードできるかな。

本日チェックしました。

おぉっ、いつのまにかREADY状態 (^-^)

 

f:id:Broadshotx:20190215093340j:plain

Visual Studio Pro w/MSDN サイト

 

4.7GB ありますな。

ダウンロード開始 (^-^)

1970年代プログラマ風景(3) - 徹夜の富士通☆

こんにちは。

寒すぎる。

シベリアか(笑)

20代の頃、富士通さんとお仕事(下請け)。

富士通のみなさん徹夜好き。

 

ホストコンピュータ(Mシリーズ)は、

富士通中原工場に置いてあった。

深夜に使って、早朝南武線で帰る。

週1,2のペース。

 

自宅に直行して寝るときもあったが、

会社に戻って、そのまま夕方まで働いた。

残業たんまりつけるため。

 

残業時間は、月に100時間以上だったなぁ(笑)

若いせいかツライと思ったことなし。

 

100Mの漬物重石のようなディスクパック。

ホント、懐かしい。

 

徹夜明けは、妙に下半身が元気になり

カミさんと一戦交えたものだ(笑)

 

TLS1.3 接続エラー AcquireCredentialsHandle 0x80090331

こんにちは。

Visual Studio C++ schannel API で TLS1.3 トライ。

 

テストで使ったTLS1.3 のサイト。

"www.tls13.facebook.com"

 

f:id:Broadshotx:20190213084556j:plain

Chrome では TLS1.3 OK

Windows 8.1 でテスト。

WIndows 10 Pro でも同じエラー。

 

TLS1.2 とロジックは同じ。

違うのはプロトコルの選択だけ。

#define SP_PROT_TLS1_3_SERVER 0x00001000
#define SP_PROT_TLS1_3_CLIENT 0x00002000
#define SP_PROT_TLS1_3 (SP_PROT_TLS1_3_SERVER | \
SP_PROT_TLS1_3_CLIENT)

 

だが、エラー発生。

AcquireCredentialsHandle 0x80090331

 

 SEC_E_ALGORITHM_MISMATCH (0x80090331)

 

アルゴリズムが不一致とな。。。。

 

うーむ、そもそもここの説明には、
SP_PROT_TLS1_3_SERVER や SP_PROT_TLS1_3_CLIENT がない。

SCHANNEL_CRED structure
https://docs.microsoft.com/en-us/windows/desktop/api/schannel/ns-schannel-_schannel_cred

 

ハマり中 (^-^)

 

1970年代のプログラマ風景(2)

こんにちは。

寒い。

年取ると寒さにめっきり弱くなる。

20代の頃使ってた U-200 ミニコンピュータ

1972年8月発表。

 

museum.ipsj.or.jp

 

制御用コンピュータですな。

 

紙テープにジジー

アセンブルした結果のRBや実行形式のEB を出力して持ち歩いてました。

 

1970年代のプログラマ風景(1)☆

こんにちは。

プログラマ人生の始まりは、メインフレームやミニコン時代。

パナファコムPFU-200、アセンブラ

 

コンピュータをマシンと読んでいた。

 

コーディングシートにコードを書き、

パンチカードでマシンに入力。

 

ビデオ端末がなく、ラインプリンタでプログラムを印刷。

エラーを確認して行単位にまたパンチして修正。

 

Cとか使う人は、まったくいなかったな。

 

 

Windows schannel API で TLS1.3を使う☆

こんにちは。

2019春、プログラマには、ツライ花粉の季節。
5月にワープしたい。

 

さて、C++ でWinsock+schannelで通信ライブラリ開発。

ついこの前、SSL3消えて、

 TLS1.0からTLS1.2。

 

やっと Windows SDK でTLS1.3 登場。

 

Visual Studio C++で schannel。

 TLS1.3 通信したい。

 

 Visual Studio 2013 では、 TLS1.2 までしかサポートしてない。

TLS1.3 のサポートなし。

schannel.h

#define SP_PROT_TLS1_2_SERVER 0x00000400
#define SP_PROT_TLS1_2_CLIENT 0x00000800
#define SP_PROT_TLS1_2 (SP_PROT_TLS1_2_SERVER | \
SP_PROT_TLS1_2_CLIENT)

 

TLS1.3を使うには、

最新のWindows SDKが必要らしい。

 

Visual Studio 2017 をインストールするのが手っ取り早い。

以下のSDKがインストールされた。

Windows Software Development Kit - Windows 10.0.17763.132

 

プロジェクトを開くと以下の画面。

f:id:Broadshotx:20190208153303j:plain

 

schannel.h

を開くと 

無事に TLS1.3発見。

 

#define SP_PROT_TLS1_3_SERVER 0x00001000
#define SP_PROT_TLS1_3_CLIENT 0x00002000
#define SP_PROT_TLS1_3 (SP_PROT_TLS1_3_SERVER | \
SP_PROT_TLS1_3_CLIENT)

 

めでたしめでたし。