Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 / Flutter Plugin Argon2 algorithm
by
Takahiro Ikeuchi
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
© 2021 iktakahiro Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 2021.08.11 - Takahiro Ikeuchi Flutter Tokyo Meetup #16
Slide 2
Slide 2 text
© 2021 iktakahiro 池内 孝啓(いけうち たかひろ) 株式会社Hakali 取締役CTO ● @iktakahiro ● https://github.com/iktakahiro Flutter 歴2.5年, Go, TypeScript, Python
Slide 3
Slide 3 text
© 2021 iktakahiro おしながき 1. Argon 2 とは 2. fargon2 の概要 3. MethodChannel を活かしたパッケージづくりにまつわる Tips 4. 課題と困っていること ※ 本日のスライドはLT後にシェアいたします
Slide 4
Slide 4 text
© 2021 iktakahiro 20時間くらい前に公開しました! https://pub.dev/packages/fargon2 ※ LT駆動開発
Slide 5
Slide 5 text
© 2021 iktakahiro 動機 1. AES のための鍵導出関数が欲しかった(リサーチ目的) 2. 既存パッケージが欲しいものと違った 3. MethodChannel を使ったプラグイン開発をしてみたかった
Slide 6
Slide 6 text
© 2021 iktakahiro Argon2 とは? ● あるごん・つー ● 鍵導出(Key Derivation)関数の1つ ● 2015年に開催された Password Hash Competition にて優勝 ● パスワードハッシュの生成や、AES で用いる key の生成に利用できる ● https://github.com/P-H-C/phc-winner-argon2 ※ Argon2 そのものの解説ではないので、詳細は割愛!
Slide 7
Slide 7 text
© 2021 iktakahiro 今回つくったもの : fargon2 とは? ● ふぁるごん・つー ● Argon2 のハッシュ生成関数を Flutter アプリ上で気軽に扱えるように したもの ● 以下の2つのライブラリの Wrapper ○ Swift 実装 : CatCrypto ○ Kotlin 実装 : argon2kt ● Platform Specific なコードを実行するために MethodChannel を利用
Slide 8
Slide 8 text
© 2021 iktakahiro MethodChannel とは? ● Writing custom platform-specific code ● Flutter, Dart コードをつうじて iOS / Android ネイティブなコードや機能を 呼び出す仕組み ※ 概要については解説が多いので本日は割愛!
Slide 9
Slide 9 text
© 2021 iktakahiro MethodChannel を利用したプラグインを実装する流れ 1. プラグイン用に Flutter プロジェクトを作成 2. Dart のコードを書く 3. Android 用のコードを書く(今回は Kotlin) 4. iOS 用のコードを書く(今回は Swift) 5. 公開!
Slide 10
Slide 10 text
© 2021 iktakahiro 1. プラグイン用に Flutter プロジェクトを作成 template オプションを plugin に指定すること これで大体雛形ができる
Slide 11
Slide 11 text
© 2021 iktakahiro 2. Dart のコードを書く ※ コードは一部抜粋です
Slide 12
Slide 12 text
© 2021 iktakahiro 3-1. Android 用 Kotlin のコードを書く
Slide 13
Slide 13 text
© 2021 iktakahiro 3-2. Android 向けに依存関係を解決 build.gradle にパッケージ情報を追加
Slide 14
Slide 14 text
© 2021 iktakahiro 4-1. iOS 用 Swift のコードを書く
Slide 15
Slide 15 text
© 2021 iktakahiro 4-2. iOS 向けに依存関係を解決 .podspec にパッケージ情報を追加
Slide 16
Slide 16 text
© 2021 iktakahiro 簡単!! と思いきや 1. example ディレクトリのコードを iOS 向けにビルドするには example/ios/Podfile の編集が必要 2. テストが難しい(後述)
Slide 17
Slide 17 text
© 2021 iktakahiro 5. 公開! ● dart pub publish !! ● コードコメントや example の 有無などで PUB POINTS が変動
Slide 18
Slide 18 text
© 2021 iktakahiro How to use fargon2
Slide 19
Slide 19 text
© 2021 iktakahiro 課題と困っていること ● テストが書けない ○ そんな馬鹿なと思ったけど、書けない ○ setMockMethodCallHandler() のコレジャナイ感 ● Xcode のプロジェクトファイルがないので、Xcode で書けない ○ そんな馬鹿なと思ったけど、書けない 解決策求む!!
Slide 20
Slide 20 text
© 2021 iktakahiro 告知タイム
Slide 21
Slide 21 text
https://www.awarefy.app ありのままの自分を理解し、 ストレスと上手に付き合う
Slide 22
Slide 22 text
We’re Hiring!! ● UI デザイナ(採用強化中!) ● Web デザイナ ● アプリ開発エンジニア ● カスタマーサクセス https://hakali.co.jp/contact @iktakahiro