Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix - Changed encoding from Base64 (with padding) to Base64URL (no padding) for SenML JSON format #710

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

parmi93
Copy link
Contributor

@parmi93 parmi93 commented Jun 13, 2023

According to the SenML JSON specification defined at RFC8428§4.3- SenML Labels the Base64 URL safe alphabet must be used (without padding) for Data Value vd:

(*) Data Value is a base64-encoded string with the URL-safe alphabet as defined in Section 5 of [RFC4648], with padding omitted. (In CBOR, the octets in the Data Value are encoded using a definite-length byte string, major type 2.)

So, encoding and decoding has been changed from Base64 (with padding) to Base64Url (without padding) for data over SenML JSON format.

Note that the behavior of the code in data/json.c has not changed, data in JSON format will continue to be encoded in Base64 (with padding), see eclipse/leshan#1444 (comment).

New tests has been added in order to test the Base64Url (without padding) encode and decode functions, and the previous tests have been modified by adding a new entry to be tested.

Fix: #698
also see: OpenMobileAlliance/OMA_LwM2M_for_Developers#553

@parmi93
Copy link
Contributor Author

parmi93 commented Jun 16, 2023

Fixed the commit message according to the rules.

Fix - Changed encoding from Base64 (with padding) to Base64URL (no paddi
ng) for data value 'vd' over SenML JSON format.

According to the SenML JSON specification defined at RFC8428§4.3 the
Base64 URL safe alphabet must be used (without padding) for Data Value
'vd':

"(*) Data Value is a base64-encoded string with the URL-safe alphabet as
defined in Section 5 of [RFC4648], with padding omitted. (In CBOR, the
octets in the Data Value are encoded using a definite-length byte
string, major type 2.)"

So, encoding and decoding has been changed from Base64 (with padding) to
Base64Url (without padding) for data value 'vd' over SenML JSON format.

Note that the behavior of the code in data/json.c has not changed, data
in JSON format will continue to be encoded in Base64 (with padding), see
eclipse-leshan/leshan#1444 (comment)

New tests has been added in order to test the Base64Url (without
padding) encode and decode functions, and the previous tests have been
modified by adding a new entry to be tested.

Fix: eclipse-wakaama#698
also see:
github.com/OpenMobileAlliance/OMA_LwM2M_for_Developers/issues/553
@parmi93
Copy link
Contributor Author

parmi93 commented Jun 16, 2023

Removed the history of commits, in order to be able to resolve errors related to commit messages that did not respect the rules.

@LukasWoodtli LukasWoodtli requested a review from mlasch May 14, 2024 06:37
Copy link

sonarcloud bot commented May 28, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarCloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Opaque value decoded in base64 format instead of base64 URL format
1 participant