Browse Source

encoding/base32: Fix RFC 4648 references and add RFC reference URL

Fix incorrect RFC 4648 section references:
- Add RFC URL reference at package level
- Update Error enum documentation to reference correct sections:
  - Invalid_Character: Section 3.3 (non-alphabet characters)
  - Invalid_Length: Section 6 (base32 block size requirements)
  - Malformed_Input: Section 3.2 (padding)
- Fix test file section references to match correct sections

This ensures all RFC references are accurate and adds a link to the
source RFC for reference.
Zoltán Kéri 7 months ago
parent
commit
fe88c22b1f
2 changed files with 9 additions and 4 deletions
  1. 6 1
      core/encoding/base32/base32.odin
  2. 3 3
      core/encoding/base32/base32_test.odin

+ 6 - 1
core/encoding/base32/base32.odin

@@ -1,3 +1,5 @@
+// Base32 encoding/decoding implementation as specified in RFC 4648.
+// [[ More; https://www.rfc-editor.org/rfc/rfc4648.html ]]
 package encoding_base32
 package encoding_base32
 
 
 // @note(zh): Encoding utility for Base32
 // @note(zh): Encoding utility for Base32
@@ -8,7 +10,10 @@ package encoding_base32
 // truncate it from the encoded output.
 // truncate it from the encoded output.
 
 
 // Error represents errors that can occur during base32 decoding operations.
 // Error represents errors that can occur during base32 decoding operations.
-// See RFC 4648 sections 3.2, 4 and 6.
+// As per RFC 4648:
+// - Section 3.3: Invalid character handling
+// - Section 3.2: Padding requirements
+// - Section 6: Base32 encoding specifics (including block size requirements)
 Error :: enum {
 Error :: enum {
 	None,
 	None,
 	Invalid_Character, // Input contains characters outside the specified alphabet
 	Invalid_Character, // Input contains characters outside the specified alphabet

+ 3 - 3
core/encoding/base32/base32_test.odin

@@ -57,7 +57,7 @@ test_base32_encode :: proc(t: ^testing.T) {
 
 
 @(test)
 @(test)
 test_base32_decode_invalid :: proc(t: ^testing.T) {
 test_base32_decode_invalid :: proc(t: ^testing.T) {
-	// Section 3.2 - Alphabet check
+	// Section 3.3 - Non-alphabet characters
 	{
 	{
 		// Characters outside alphabet
 		// Characters outside alphabet
 		input := "MZ1W6YTB" // '1' not in alphabet (A-Z, 2-7)
 		input := "MZ1W6YTB" // '1' not in alphabet (A-Z, 2-7)
@@ -77,7 +77,7 @@ test_base32_decode_invalid :: proc(t: ^testing.T) {
 		testing.expect_value(t, err, Error.Invalid_Character)
 		testing.expect_value(t, err, Error.Invalid_Character)
 	}
 	}
 
 
-	// Section 4 - Padding requirements
+	// Section 3.2 - Padding requirements
 	{
 	{
 		// Padding must only be at end
 		// Padding must only be at end
 		input := "MZ=Q===="
 		input := "MZ=Q===="
@@ -115,7 +115,7 @@ test_base32_decode_invalid :: proc(t: ^testing.T) {
 		testing.expect_value(t, err, Error.Malformed_Input)
 		testing.expect_value(t, err, Error.Malformed_Input)
 	}
 	}
 
 
-	// Section 6 - Block size requirements
+	// Section 6 - Base32 block size requirements
 	{
 	{
 		// Single character (invalid block)
 		// Single character (invalid block)
 		input := "M"
 		input := "M"