![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Python library for handling Secure Dynamic Messaging (SDM) of NFC cards like the NTAG 424 DNA
pylibsdm is a Python library (SDK) for handling Secure Dynamic Messaging (SDM) of NFC cards with Python.
Secure Dynamic Messaging is a technology that adds security features to NFC tags using standard mechanisms. While standard NFC data (so-called NDEF messages, e.g. texts, URLs, etc.) can be written to any compatible tag, SUN-capable tags can cryptographically sign and optionally also encrypt parts of the data, which can then still be read by any standard NFC reader.
pylibsdm
is shipped as a standard Python library and cann be installed
from PyPI:
pip install "pylibsdm[cli]"
The cli
extra installs the sdmutil
command-line utility, which can
be used as a stand-alone tool to handle tags.
The following examples show how to use pylibsdm
within custom
applications. It can, as such, be seen as an SDK for writing SUN-capable
applications.
We will configure a tag for the following behaviour:
from pylibsdm.tag.ntag424dna import Tag
# We need a working tag object from nfcpy
nfc_tag = ...
# Configure the SDM tag object for communication
sdm_tag = Tag(nfc_tag)
# Set current master app key nr 0 for authentication
sdm_tag.set_key(0, b"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xdd\xee\xff")
# Change app keys 1 and 2 for later use
sdm_tag.change_key(1, 16 * b"\xaa")
sdm_tag.change_key(2, 16 * b"\xaa")
# Configure attributes for mirroring
file_option = FileOption(sdm_enabled=True, comm_mode=CommMode.PLAIN)
sdm_options = SDMOptions(
uid=True,
read_ctr=True,
read_ctr_limit=False,
enc_file_data=False,
tt_status=False,
ascii_encoding=True,
)
# We configure free reading access of NDEF, writing data is limited to app key 1,
# and changing file settings to the master app key 0
access_rights = AccessRights(
read=AccessCondition.FREE_ACCESS,
write=AccessCondition.1,
read_write=AccessCondition.KEY_1,
change=AccessCondition.KEY_0,
)
# When reading the NDEF message, app key 2 is used for
sdm_acceess_rights = SDMAccessRights(
file_read=AccessCondition.KEY_2,
meta_read=AccessCondition.KEY_2,
ctr_ret=AccessCondition.KEY_2,
)
# Aggregate options and offsets in NDEF data
file_settings = FileSettings(
file_option=file_option,
access_rights=access_rights,
sdm_options=sdm_options,
sdm_access_rights=sdm_acceess_rights,
picc_data_offset=32,
mac_offset=67,
mac_input_offset=67,
)
sdm_tag.change_file_settings(2, file_settings)
FAQs
Python library for handling Secure Dynamic Messaging (SDM) of NFC cards like the NTAG 424 DNA
We found that pylibsdm demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.