2FAuth/app/Protobuf/README.md

1.3 KiB

Protobuf How To

⚠️ Protobuf classes are generated, do NOT modify the classes manually ⚠️

Setup

  • Install the protobuf compiler
sudo apt install protobuf-compiler
  • Install the protobuf PHP extension
sudo pecl install protobuf
  • Install the composer package
composer require google/protobuf

Reference: protobuf/php

Generate the class

  • Edit the *.proto file

Reference: protocol-buffers/docs/proto3

  • Run the following cli command:
protoc --proto_path=app/Protobuf/ --php_out=. app/Protobuf/GoogleAuth.proto

Protoc will generate the files in app/Protobuf while we want them to be in App/protobuf.

  • Moves the files from app/Protobuf to App/protobuf
  • Update the namespace of the moved files to match their new location

Reference: protocol-buffers/docs/php-generated

command to decode an otpauth uri using protoc cli

echo "otpauth-migration://offline?data=[BASE32_ENCODED_DATA]" | sed 's/QR-Code://' | sed 's/otpauth-migration:\/\/offline?data=//' | sed -e 's/%2B/+/ig' -e 's/%2F/\//ig' -e 's/%3D/=/ig' | base64 -d | protoc --decode_raw