SlideShare a Scribd company logo
golangによるUbicの試作
Sapporo #golang Meetup
kn1kn1
自己紹介
● 現在
○ 札幌市内の受託メインの会社
● もともとは
○ 組込みセキュリティとか
○ エンタープライズ向けパッケージソフトとか
● github
○ https://github.com/kn1kn1
最近は・・
● Language-Context-Free
○ https://atom.io/packages/language-context-free
○ Atomエディタのpackage
○ Context Free
○ CIにwercker + dockerを使用
○ 詳しくは別の機会に・・
go言語
● Kato Kazuyoshi さん
○ Docker を読む
○ http://2013.8-p.info/japanese/06-22-docker.html
● @t-wada さん
○ 「2014年プログラミング大予測」に参加しました
○ http://t-wada.hatenablog.jp/entry/programming-
forecast-2014
● @omo さん
○ Resolutions 2014 - Unparalyze Passion
○ http://flakiness.es/2014/01/02/resolutions-2014.html
○ 個人的にはこのエントリーがきっかけ
go-sclang
● https://github.com/kn1kn1/go-sclang
● goからSuperCollider(音響合成用プログラミング言語)を起
動するためのライブラリ
● sc4nodeとして公開していたnode.jsのライブラリを移植
Ubic
● http://www.eurekalert.org/pub_releases/2014-03/su-
isf030614.php
● Google Glassを使用した認証
● 所属する会社の研究開発として調査
● 手段の目的化はもちろん否めない
● 実現方式は論文として公開されていたので、それを参照し
て実装
○ http://arxiv-web3.library.cornell.edu/pdf/1403.
1343v3.pdf
○ http://arxiv-web3.library.cornell.edu/pdf/1403.
1343v1.pdf
● goで実装したのはサーバ側
● 仕様
○ サーバ(go)
■ 認証コード(6桁の数字)を生成
■ 認証コードを暗号化(RSA OAEP)
■ 署名生成(RSA-PSS)
■ QRコード作成
○ クライアント(Google Glass - Android)
■ QRコード読取り
■ 署名検証(RSA-PSS)
■ 認証コード復号(RSA OAEP)
● 実装
○ フレームワークは無し(net/http)
○ QRコード生成は、ZXing("zebra crossing")のgenerator
を使用
■ http://zxing.appspot.com/generator
○ 作ったものはHerokuにデプロイ
■ https://peaceful-forest-7529.herokuapp.com/
○ Dockerfileも作りましたが今回は出番がなかったです
○ go側はあまり問題なく実装完了
● Androidでの問題のほうが多かった
○ RSA-PSS署名に対応していない
■ RSA PKCS#1 v1.5に変更したり。。
→ 最終的には、Android側にSpongy Castle (https:
//rtyley.github.io/spongycastle/)を入れてPSSに対応
○ QRコードの密度が高い(画像が小さくて文字数が多い)
と読み取ってくれない
■ 鍵長を短くしたり。。
→ 最終的には、表示する画像を大きくして対応
● goの暗号について
○ 今回使用した限りでは好印象
○ 他には、crypto/subtleとか
■ http://golang.org/pkg/crypto/subtle/
○ Practical Cryptography With Go
■ https://leanpub.com/gocrypto
■ 翻訳予定
ありがとうございました!

More Related Content

What's hot

Android6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみたAndroid6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみた
Satoshi Noda
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
 
Enjoy the difference
Enjoy the differenceEnjoy the difference
Enjoy the difference
uchimanajet7
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
 
ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語
Satoshi Noda
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
yaegashi
 
gopher-lua
gopher-luagopher-lua
gopher-lua
Takuya Ueda
 
20091107 Phpstudy
20091107 Phpstudy20091107 Phpstudy
20091107 PhpstudyYusuke Ando
 
Androidnight contribute droidkaigi
Androidnight contribute droidkaigiAndroidnight contribute droidkaigi
Androidnight contribute droidkaigi
Shinjiro Watanabe
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Go
naoty_bot
 

What's hot (11)

Android6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみたAndroid6.0の機能まとめ 実機でサンプルを動かしてみた
Android6.0の機能まとめ 実機でサンプルを動かしてみた
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
 
Enjoy the difference
Enjoy the differenceEnjoy the difference
Enjoy the difference
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語
 
Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話Raspberry Pi + Go で IoT した話
Raspberry Pi + Go で IoT した話
 
gopher-lua
gopher-luagopher-lua
gopher-lua
 
20091107 Phpstudy
20091107 Phpstudy20091107 Phpstudy
20091107 Phpstudy
 
Androidnight contribute droidkaigi
Androidnight contribute droidkaigiAndroidnight contribute droidkaigi
Androidnight contribute droidkaigi
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
Easy scripting in Go
Easy scripting in GoEasy scripting in Go
Easy scripting in Go
 

Viewers also liked

FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 SummerGoのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Takuya Ueda
 
Ginとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebAppGinとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
株式会社YEBIS.XYZ
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか?
Kenichi Hoshi
 
私なりのGo言語のご紹介
私なりのGo言語のご紹介私なりのGo言語のご紹介
私なりのGo言語のご紹介
Ryuji Iwata
 
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
Keisuke Utsumi
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
Yoshio Hanawa
 
презентация моя
презентация мояпрезентация моя
презентация моя
DashaYr
 
новый котовск наша улица
новый котовск наша улицановый котовск наша улица
новый котовск наша улица
DashaYr
 
Cheap hawaii vacations
Cheap hawaii vacationsCheap hawaii vacations
Cheap hawaii vacations
stardusthawaii
 
Jake bugg anaylsis
Jake bugg anaylsisJake bugg anaylsis
Jake bugg anaylsis
ldevine1234
 
Presentatie mymachine: de muziek machine
Presentatie mymachine: de muziek machinePresentatie mymachine: de muziek machine
Presentatie mymachine: de muziek machine
Bram Ceuleers
 
Motivating Employees Around the World
Motivating Employees Around the WorldMotivating Employees Around the World
Motivating Employees Around the World
Ardy Kirk Assadi
 
Greg Carpenter
Greg CarpenterGreg Carpenter
Greg CarpenterGCarp
 
AADI Presentation (1)
AADI Presentation (1)AADI Presentation (1)
AADI Presentation (1)Sharon Thomas
 

Viewers also liked (20)

FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 SummerGoのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
 
Ginとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebAppGinとbindataで作るシングルバイナリWebApp
Ginとbindataで作るシングルバイナリWebApp
 
[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話[Golang] Go言語でサービス作ってる話
[Golang] Go言語でサービス作ってる話
 
Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか? Java?ruby? そろそろgoで行ってみませんか?
Java?ruby? そろそろgoで行ってみませんか?
 
私なりのGo言語のご紹介
私なりのGo言語のご紹介私なりのGo言語のご紹介
私なりのGo言語のご紹介
 
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
PHPerがgolangでもがいてる話@第1回 関西Golang勉強会
 
PHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作るPHPの拡張モジュールをGoで作る
PHPの拡張モジュールをGoで作る
 
Step Up Jan 2015
Step Up Jan 2015Step Up Jan 2015
Step Up Jan 2015
 
презентация моя
презентация мояпрезентация моя
презентация моя
 
новый котовск наша улица
новый котовск наша улицановый котовск наша улица
новый котовск наша улица
 
Cheap hawaii vacations
Cheap hawaii vacationsCheap hawaii vacations
Cheap hawaii vacations
 
Jake bugg anaylsis
Jake bugg anaylsisJake bugg anaylsis
Jake bugg anaylsis
 
Presentatie mymachine: de muziek machine
Presentatie mymachine: de muziek machinePresentatie mymachine: de muziek machine
Presentatie mymachine: de muziek machine
 
Motivating Employees Around the World
Motivating Employees Around the WorldMotivating Employees Around the World
Motivating Employees Around the World
 
Rewind
RewindRewind
Rewind
 
Greg Carpenter
Greg CarpenterGreg Carpenter
Greg Carpenter
 
AADI Presentation (1)
AADI Presentation (1)AADI Presentation (1)
AADI Presentation (1)
 

Similar to Golangによるubicの試作

使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
hirokiky
 
Pythonを始めよう
Pythonを始めようPythonを始めよう
Pythonを始めよう
shouta yoshikai
 
Docker初級者によるdocker布教
Docker初級者によるdocker布教Docker初級者によるdocker布教
Docker初級者によるdocker布教
dog american
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編
Koichi Shiraishi
 
Google Gadgetsを看取る
Google Gadgetsを看取るGoogle Gadgetsを看取る
Google Gadgetsを看取る
Takashi SASAKI
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
Yasutaka Kawamoto
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
 
社内勉強会1 go lang
社内勉強会1 go lang 社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
 
初めてのDocker
初めてのDocker初めてのDocker
初めてのDocker
You&I
 
Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)
JUNICHI YOSHISE
 
Chrome Packaged Apps
Chrome Packaged AppsChrome Packaged Apps
Chrome Packaged Apps
Ryoya Kawai
 
Useful Django 1.4
Useful Django 1.4Useful Django 1.4
Useful Django 1.4
hirokiky
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Go Sueyoshi (a.k.a sue445)
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋Takuya Ueda
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
Kiyoshi Ogawa
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Kazuyuki Mori
 
Introduce Yocto Project Japan and What want to make using Yocto Project
Introduce Yocto Project Japan and What want to make using Yocto ProjectIntroduce Yocto Project Japan and What want to make using Yocto Project
Introduce Yocto Project Japan and What want to make using Yocto Project
Hiroshi Sakate
 
分散Key/Valueストア Kai 事例紹介
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介
Tomoya Hashimoto
 
Cardboard勉強会
Cardboard勉強会Cardboard勉強会
Cardboard勉強会
Satoshi Noda
 

Similar to Golangによるubicの試作 (20)

使えるDjango1.4
使えるDjango1.4使えるDjango1.4
使えるDjango1.4
 
Pythonを始めよう
Pythonを始めようPythonを始めよう
Pythonを始めよう
 
Docker初級者によるdocker布教
Docker初級者によるdocker布教Docker初級者によるdocker布教
Docker初級者によるdocker布教
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編
 
Google Gadgetsを看取る
Google Gadgetsを看取るGoogle Gadgetsを看取る
Google Gadgetsを看取る
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
社内勉強会1 go lang
社内勉強会1 go lang 社内勉強会1 go lang
社内勉強会1 go lang
 
初めてのDocker
初めてのDocker初めてのDocker
初めてのDocker
 
Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)
 
Chrome Packaged Apps
Chrome Packaged AppsChrome Packaged Apps
Chrome Packaged Apps
 
Useful Django 1.4
Useful Django 1.4Useful Django 1.4
Useful Django 1.4
 
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 
Introduce Yocto Project Japan and What want to make using Yocto Project
Introduce Yocto Project Japan and What want to make using Yocto ProjectIntroduce Yocto Project Japan and What want to make using Yocto Project
Introduce Yocto Project Japan and What want to make using Yocto Project
 
分散Key/Valueストア Kai 事例紹介
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介
 
Cardboard勉強会
Cardboard勉強会Cardboard勉強会
Cardboard勉強会
 

Golangによるubicの試作