2023年7月29日土曜日

G304のスクロールが逆になる

G304のセンターホイールの挙動が怪しくなった件について

下スクロールしても上スクロールしたりする。

某サイトのレビューをみるに、同じ症状の人がちらほらいるっぽい。

ホコリを飛ばす程度の掃除では改善しなかった。

接点復活剤で掃除したら直ったけど、分解しないといけないんだよね…。

分解するにはマウスソール外さないといけないんよね。

マウスソールはがしても頑張れば元に戻せるけど 、交換品がアマゾンに売っている。

買い直すより掃除してみたほうがいいよ!

 

2023年7月18日火曜日

CNGでECDSAのメモ

    Cryptography API: Next GenerationでECDSAでDH鍵交換し、AESで暗号化する処理の大まかな流れのメモ。
  1. BCryptOpenAlgorithmProviderで鍵交換用プロバイダー(BCRYPT_ECDH_P256_ALGORITHM)を開く。
  2. BCryptGenerateKeyPairでキーペアを作成。
  3. BCryptFinalizeKeyPairでキーペアを作成を完成させる。
  4. BCryptExportKeyで公開鍵をエクスポートする。
  5. 相手に自身の公開鍵を渡す。
  6. 相手から相手の公開鍵を受け取る。 
  7. 受け取った公開鍵をBCryptImportKeyでインポートする。 
  8. BCryptSecretAgreementで、自身の秘密鍵と受け取った公開鍵で共有シークレット を作成する。
  9. BCryptDeriveKeyで、共有シークレットから派生鍵(共通鍵)を作成する。
  10. BCryptOpenAlgorithmProviderで、暗号化用プロバイダー(BCRYPT_AES_ALGORITHM)を開く
  11. BCryptGenerateSymmetricKeyで、共通鍵のためのキーオブジェクトを作成する。
  12. BCryptEncryptでメッセージを暗号化する。
  13. BCryptDecrypt でメッセージを復号化する。
  14. BCryptDestroySecretでシークレットアグリーメントを削除する。
  15. BCryptDestroyKeyでキーを破棄する
  16.  BCryptCloseAlgorithmProvider でプロバイダを閉じる。

 

うーん、めんどくさい。。

ちょっとしたメモ

  • CNGはハンドル(プロバイダハンドルやキーハンドル)でいろいろ操作する 
  • 生のキーデータを取るには BCryptExportKeyを使う。ここでとれるのはBLOB形式で、実際の生データはBCRYPT_ECCKEY_BLOBなどの構造体の後に続く形で格納されてる。共通シークレット取れる。共有シークレットはリトルエンディアンになっているので注意。また秘密鍵BLOBは公開鍵も含んでいる。例えばECDSAの秘密鍵のBLOBは

 BCRYPT_ECCKEY_BLOB
BYTE X[cbKey] 公開鍵のX
BYTE Y[cbKey] 公開鍵のY
BYTE d[cbKey] 秘密鍵

となっている。

公開鍵をのblob は、

BCRYPT_ECCKEY_BLOB
BYTE X[cbKey] 公開鍵のX
BYTE Y[cbKey] 公開鍵のY

となっている。