Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mochiOS developer kit

mochiOSアプリをMPKG v1としてbuild、署名、検証する開発者向けCLIです。

Quick Start

初回だけAccountログインとEd25519 application鍵の生成を行います。

kome login
kome keygen
kome sign

2回目以降は、project directoryで次を実行します。

kome sign

kome signは必要なbuildとunsigned MPKG生成を行い、認証済みAccountからDeveloperを 解決し、Developer Certificateを取得または再利用します。署名済みMPKGを一時ファイルで 検証し、成功した場合だけdist/<name>.mpkgへ配置します。未ログイン時に勝手にブラウザを 開くことはありません。

新規project:

kome new Example --id com.example.application --vendor "Example Developer"
cd Example
kome login
kome keygen
kome sign

Tools

  • kome: project作成、Account session、build、pack、署名の通常入口
  • mpack: unsigned MPKG v1の低レベル生成器
  • msign: Ed25519鍵、MCER、MPKG署名・検証の低レベルツール
  • komeup: Kome toolchain installer

Generated Files

Kome.toml
keys/application.key
keys/application.pub
keys/developer.cert
keys/developer.issuer.pub
target/debug/entry.elf
dist/Example-unsigned.mpkg
dist/Example.mpkg

application.keyはraw 32-byte Ed25519 signing keyのBase64です。stdout、Cloud、MPKGへ 出力されず、.gitignorekeys/application.keyが重複なく追加されます。 application.pubだけがCertificate発行要求へ送られます。

kome packはMPKG v1の32-byte headerと決定的な無圧縮ustar streamを生成します。 manifest.tomlには実payloadのsizeとSHA-256が入り、署名前の出力には signatures/がなくても構いません。

Account And Developer

kome account
kome developer list
kome developer use 019f9e5ac6687902b0e72fe53abfbef1
kome logout

Developer IDは32文字の小文字16進識別子です。Developer ID自体は公開識別子であり、 credentialではありません。Package IDはorg.mochios.*に限定されず、 com.example.paintio.github.username.toolを使用できます。

CLI refresh credentialとsession IDはOS credential storeを優先して保存します。OS storeが 利用できない場合だけ、project外の所有者限定設定ファイルへfallbackします。Web Cookieと access tokenは永続保存しません。

Guides

Low-level Commands

通常の開発では必要ありません。fixture、運営、形式検証用です。

mpack create --manifest manifest.toml --payload payload --output app.mpkg
msign key generate --private-key application.key --public-key application.pub
msign certificate issue \
  --issuer-key issuer.key \
  --subject-public-key application.pub \
  --developer-id 019f9e5ac6687902b0e72fe53abfbef1 \
  --serial 1 \
  --not-before 1700000000 \
  --not-after 1800000000 \
  --scope exact:com.example.application \
  --capability window.create \
  --output developer.cert
msign package sign app.mpkg --certificate developer.cert --key application.key
msign package verify app.mpkg --root-public-key root.pub --unix-time 1750000000

msign certificate issueは運営・fixture用であり、一般利用者向けのCertificate取得手順では ありません。

Security

  • Device AuthorizationはPKCE S256を使用し、Accounts指定のpoll intervalを守ります。
  • verification URLへ載せる値は公開codeだけです。device codeやtokenは載せません。
  • application private key、refresh credential、payload、sourceをCloudへ送りません。
  • CertificateのMCER形式、Issuer署名、Subject、Developer、scope、Capability、期限を ローカルで検証します。
  • 署名後にheader、ustar、Certificate、manifest署名、payload size/digestを検証します。
  • AppStore Reviewerは公開時にCertificateの最新statusを再確認する責務を持ちます。

Releases

Packages

Contributors

Languages