Skip to content

bigbank-as/digidoc

Repository files navigation

PHP Library for Estonian Digital ID (DigiDocService)

Latest Stable Version on Packagist Software License Build Status Total Downloads

This is a PHP library for communicating with the Certification Centre's DigiDocService API. The API is SOAP-based, documentation is available here.

Install

Via Composer

$ composer require bigbank/digidoc

The library requires PHP >=5.6, curl, soap, xml, mbstring and openssl extensions.

Usage

// Instantiate the main class
$digiDoc = new DigiDoc(DigiDoc::URL_TEST);

// Ask for a service (see: Services)
/** @var AuthenticatorInterface $authenticator */
$authenticator = $digiDoc->getService(AuthenticatorInterface::class);

// Start mobile ID authentication
$userDetails = $authenticator->authenticate('14212128025', '+37200007', 'Testimine', 'My Test App', false);

// Wait for the user to complete the process
$authenticator->waitForAuthentication(function ($authResult) {
 return $authResult === 'USER_AUTHENTICATED' ? 'welcome!' : 'not authenticated';
});

More detailed usage examples are provided in the examples directory.

To use a HTTP proxy, set HTTP_PROXY environment variable.

Services

The library provides access to the following services:

Authentication With Mobile ID

Authenticate the user with his mobile ID.

  • Interface Name: AuthenticatorInterface
  • DigiDocService: 7. Queries and Responses for Authentication / 7.1 MobileAuthenticate

Usage

See examples/mobile/authentication.php.

Digital Signature With Mobile ID

Allow users to digitally sign files using mobile ID.

  • Interface Name: FileSignerInterface
  • DigiDocService: 8. Queries and Responses for Digital Signature

Usage

See examples/mobile/signing.php.

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Known Issues

  • Challenge verification is not done for authentication queries (see Challenge and SPChallenge parameters for MobileAuthenticate query). This is planned in future versions.

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email :author_email instead of using the issue tracker.

Credits

License

The Apache 2 License. Please see License File for more information.