Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 /...
Search
Takahiro Ikeuchi
August 11, 2021
Programming
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 / Flutter Plugin Argon2 algorithm
Flutter Tokyo Meetup #16 の LT 資料です!
Takahiro Ikeuchi
August 11, 2021
More Decks by Takahiro Ikeuchi
See All by Takahiro Ikeuchi
Better Authという選択──AI時代に認証基盤のコードを持つ意味とは / better-auth-ai-era
iktakahiro
0
36
TanStack Start エコシステムの現在地 / TanStack Start Ecosystem 2026
iktakahiro
1
560
TanStack Start 技術選定の裏側 / Findy-Lunch-LT-TanStack-Start
iktakahiro
5
3k
AI長期記憶システム構築のための LLMマルチエージェントの取り組み / Awarefy-LLM-Multi-Agent
iktakahiro
3
1.8k
最新のAIツールは何を解決しようとしているのか - Python エンジニアが取り組むべき "越境" とは - / Python-Engineer-in-AI-Era
iktakahiro
1
1.6k
AWS Step Functions と Amazon Bedrock で構築する 可用性の高いAIサービス / Awarefy-AI-AWS-Bedrock-Step-Functions
iktakahiro
1
1.2k
Flutter アプリの将来のインフラ移行に備える 疎結合なソフトウェア・アーキテクチャ / Flutter code Architecture for Infrastructure Migration
iktakahiro
0
2.3k
[Amazon EKS on AWS Fargate] スタートアップの "次の3年" を支えるためのインフラ技術 / AWS DEV DAY EKS ON FARGATE
iktakahiro
2
1.9k
可視化からはじめる ITエンジニアの セルフ・アウェアネス入門 / self-awareness-for-software-engineers
iktakahiro
0
650
Other Decks in Programming
See All in Programming
MySQLとPostgreSQLって何が違うの?
akagami
0
130
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
270
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.7k
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
200
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.8k
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
Building a Meta Ray-Ban display app
akkeylab
0
180
今さら聞けない .NET CLI
htkym
0
210
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.7k
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
600
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
30 Presentation Tips
portentint
PRO
1
380
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
Practical Orchestrator
shlominoach
191
12k
First, design no harm
axbom
PRO
2
1.3k
What's in a price? How to price your products and services
michaelherold
247
13k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating Weather and Climate Data
rabernat
0
490
Discover your Explorer Soul
emna__ayadi
2
1.3k
Transcript
© 2021 iktakahiro Argon2 を用いたハッシュ生成機能を提供するライブラリを pub.dev に公開した話 2021.08.11 - Takahiro
Ikeuchi Flutter Tokyo Meetup #16
© 2021 iktakahiro 池内 孝啓(いけうち たかひろ) 株式会社Hakali 取締役CTO • @iktakahiro
• https://github.com/iktakahiro Flutter 歴2.5年, Go, TypeScript, Python
© 2021 iktakahiro おしながき 1. Argon 2 とは 2. fargon2
の概要 3. MethodChannel を活かしたパッケージづくりにまつわる Tips 4. 課題と困っていること ※ 本日のスライドはLT後にシェアいたします
© 2021 iktakahiro 20時間くらい前に公開しました! https://pub.dev/packages/fargon2 ※ LT駆動開発
© 2021 iktakahiro 動機 1. AES のための鍵導出関数が欲しかった(リサーチ目的) 2. 既存パッケージが欲しいものと違った 3.
MethodChannel を使ったプラグイン開発をしてみたかった
© 2021 iktakahiro Argon2 とは? • あるごん・つー • 鍵導出(Key Derivation)関数の1つ
• 2015年に開催された Password Hash Competition にて優勝 • パスワードハッシュの生成や、AES で用いる key の生成に利用できる • https://github.com/P-H-C/phc-winner-argon2 ※ Argon2 そのものの解説ではないので、詳細は割愛!
© 2021 iktakahiro 今回つくったもの : fargon2 とは? • ふぁるごん・つー •
Argon2 のハッシュ生成関数を Flutter アプリ上で気軽に扱えるように したもの • 以下の2つのライブラリの Wrapper ◦ Swift 実装 : CatCrypto ◦ Kotlin 実装 : argon2kt • Platform Specific なコードを実行するために MethodChannel を利用
© 2021 iktakahiro MethodChannel とは? • Writing custom platform-specific code
• Flutter, Dart コードをつうじて iOS / Android ネイティブなコードや機能を 呼び出す仕組み ※ 概要については解説が多いので本日は割愛!
© 2021 iktakahiro MethodChannel を利用したプラグインを実装する流れ 1. プラグイン用に Flutter プロジェクトを作成 2.
Dart のコードを書く 3. Android 用のコードを書く(今回は Kotlin) 4. iOS 用のコードを書く(今回は Swift) 5. 公開!
© 2021 iktakahiro 1. プラグイン用に Flutter プロジェクトを作成 template オプションを plugin
に指定すること これで大体雛形ができる
© 2021 iktakahiro 2. Dart のコードを書く ※ コードは一部抜粋です
© 2021 iktakahiro 3-1. Android 用 Kotlin のコードを書く
© 2021 iktakahiro 3-2. Android 向けに依存関係を解決 build.gradle にパッケージ情報を追加
© 2021 iktakahiro 4-1. iOS 用 Swift のコードを書く
© 2021 iktakahiro 4-2. iOS 向けに依存関係を解決 .podspec にパッケージ情報を追加
© 2021 iktakahiro 簡単!! と思いきや 1. example ディレクトリのコードを iOS 向けにビルドするには
example/ios/Podfile の編集が必要 2. テストが難しい(後述)
© 2021 iktakahiro 5. 公開! • dart pub publish !!
• コードコメントや example の 有無などで PUB POINTS が変動
© 2021 iktakahiro How to use fargon2
© 2021 iktakahiro 課題と困っていること • テストが書けない ◦ そんな馬鹿なと思ったけど、書けない ◦ setMockMethodCallHandler()
のコレジャナイ感 • Xcode のプロジェクトファイルがないので、Xcode で書けない ◦ そんな馬鹿なと思ったけど、書けない 解決策求む!!
© 2021 iktakahiro 告知タイム
https://www.awarefy.app ありのままの自分を理解し、 ストレスと上手に付き合う
We’re Hiring!! • UI デザイナ(採用強化中!) • Web デザイナ • アプリ開発エンジニア
• カスタマーサクセス https://hakali.co.jp/contact @iktakahiro