Skip to content

jabcode/jabpro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JABPro

Introduction

The German Federal Office for Information Security (BSI) has published the technical guideline BSI TR-03137-1 for securing sovereign paper documents. This guideline covers the protection of seven different sovereign documents, which are referred to as profiles. The specific profiles are: Visa Profile, Arrical Attestation Document Profile, Social Insurance Card Profile, Residence Permit Profile, Supplementary Sheet of the Residence Permit Profile, Address Sticker Profile for German Identity Card, address sticker for passport, Place of Residence Sticker Profile for German Passport. In the implementation process, but independent of BSI TR-03137-1, a further profile, the test profile, was designed, which contains a passport photo in addition to the printed textual data. This is intended to better protect the paper document against forgery. The implementation can be used to evaluate the profiles in combination with various barcodes.

Build Instructions

The JABPro core library, encoder, decoder, parser and signer are written in C.

Follow the following steps to build the core library and applications.

Step 1: Build the ABPro core library by running the make command in './jabpro'

Step 2: Build the encoder, signer, decoder and parser by running make in their respected directory (./jproEncoder, ./jproSigner, ./jproDecoder, ./Parser)

The build library can be found in jabpro/build. The encoder, signer, decoder and parser can be found in jproEncoder/bin, jproSigner/bin, jproDecoder/bin and jproParser/bin.

Usage

The usage of the jproEncoder, jproSigner, jproDecoder and jproParser can be obtainded by running the programs with the argument --help

To encode a profile:

Step 1: run jproEncoder with the profile data

Step 2: generate a signature for the encoded profile using openSSL

Step 3: run jproSigner to append the signature to the encoded profile

To decode an encoded profile:

Step 1: run jproParser to get the signature and the encoded profile

Step 2: verify the signature using openSSL

Step 3: run jproDecoder with the encoded profile

jproEncoder

Used to encode a Profile: run jproEncoder --help for detailed usage.

jproSigner

Used to append a signature to an encoded profile: run jproSigner --help for detailed usage.

jproParser

Used to split the signature from an encoded profile: run jproParser --help for detailed usage.

jproDecoder

Used to decode an encoded profile: run jproDecoder --help for detailed usage.

Documentation

The code is well commented and the API documentation can be easily generated by using doxygen.

About

Encoding/Decoding Library of Digital Seal (BSI TR-03137)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors