HMAC & JSON Web Token implementation in 1C:Enterprise
1C Enterprise
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src Fixed bug with key longer than 64 bytes Oct 26, 2017
LICENSE Initial commit Apr 14, 2017
README.md Fixed bug with key longer than 64 bytes Oct 26, 2017

README.md

1C HMAC & JWT

This is a pure 1C implementation of RFC 2104 https://www.ietf.org/rfc/rfc2104.txt and RFC 7519 https://tools.ietf.org/html/rfc7519

Limitations

This implementation works only on 1C:Enterprise platform version 8.3.10.2168 or above. The platform you may download here: https://1c-dn.com/user/updates/1c_enterprise_platform_training_version/ For JWT supported algorithm HS256 only. HMAC function supports algorithms: MD5, SHA1, SHA256

Installing

Download modules Cryptography.bsl and JWT.bsl. Put modules into the 1C application.

Usage

	
	// HMAC
	SecretKey = "key";
	StringToSign = "The quick brown fox jumps over the lazy dog";
	Signature = Cryptography.HMAC(
		GetBinaryDataFromString(SecretKey),
		GetBinaryDataFromString(StringToSign),
		HashFunction.SHA256);

	// JWT
	SecretKey = "secret";
	Payload = New Structure;
	Payload.Insert("sub", "1234567890");
	Payload.Insert("name", "John Doe");
	Payload.Insert("admin", True);
	
	Token = JWT.Encode(SecretKey, Payload);
	
	DecodedPayload = JWT.Decode(Token, SecretKey);
	

Credits and License

Author: Vasily Pintov vasily@pintov.ru

License: MIT