Skip to content

feat: Improve security of NF-e access key random code#52

Draft
mileo wants to merge 1 commit into
masterfrom
issue-50-secure-random-code
Draft

feat: Improve security of NF-e access key random code#52
mileo wants to merge 1 commit into
masterfrom
issue-50-secure-random-code

Conversation

@mileo
Copy link
Copy Markdown
Member

@mileo mileo commented Aug 27, 2025

This commit improves the security of the "Código Numérico" (random code) generation for the NF-e access key.

The previous implementation used a predictable algorithm, which could be exploited to reconstruct NF-e access keys.

This change introduces the ability to use a user-provided secret key to generate the random code using HMAC-SHA256, making it much harder to guess.

The ChaveEdoc class now accepts a secret_key parameter. If provided, it's used to generate a secure random code. If not, it falls back to the old method for backward compatibility.

A new test case has been added to verify the new functionality.

This commit improves the security of the "Código Numérico" (random code)
generation for the NF-e access key.

The previous implementation used a predictable algorithm, which could
be exploited to reconstruct NF-e access keys.

This change introduces the ability to use a user-provided secret key
to generate the random code using HMAC-SHA256, making it much harder
to guess.

The `ChaveEdoc` class now accepts a `secret_key` parameter. If provided,
it's used to generate a secure random code. If not, it falls back to the
old method for backward compatibility.

A new test case has been added to verify the new functionality.
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.

1 participant