Files
ginxsom/auth_debug_comprehensive.log
T
2025-08-20 09:51:55 -04:00

203 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
═══════════════════════════════════════════════════════════════════
🔧 COMPREHENSIVE NOSTR EVENT VALIDATION DEBUG TEST 🔧
═══════════════════════════════════════════════════════════════════
🔍 STEP INIT-1: Initializing nostr library
✅ SUCCESS: Nostr library initialized
️ INFO: Testing Authorization header:
Nostr eyJraW5kIjoyNDI0MiwiaWQiOiI5NTYxNjA1YjEwNjJjZTM3ZTk1YWI5YjgxZDMwMGQ5YWQ1YmZiOWM1NDRhZTM5NWUxZWI0MWYwMDBjN2Q4OWY2IiwicHVia2V5IjoiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIxNmY4MTc5OCIsImNyZWF0ZWRfYXQiOjE3NTU2ODU0MjgsInRhZ3MiOltbInQiLCJ1cGxvYWQiXSxbIngiLCI4NDcxNjE3MWJhYjE2YWQwMjFiZDg5NTMwNTAxODlmZTYwNzU5MTc0MzZjZDExY2M5MzNmMDIxYmJjNWQ1YjBiIl0sWyJleHBpcmF0aW9uIiwiMTc1NTY4OTAyOCJdXSwiY29udGVudCI6IiIsInNpZyI6Ijk1MzE2YWI3NWY4ZDAyYmI5OTVhMTI0OGMyNzRiOTlmOWJjNWRjMGFmNTY0OWU2OTQ5MDE1ZDA2OTkwNGQ0YmRmM2EzYzc5NDI3YWM4MjQ1Njk4NmEyZTkzN2IxZDI1YjZkMmVlOGVlMWU0NDZhODQ5Y2IxOTc3NGRmOTQ4ZWFkIn0=
═══════════════════════════════════════════════════════════════════
🔍 STEP PARSE-1: Parsing Authorization header
DEBUG: parse_authorization_header called with header: Nostr eyJraW5kIjoyNDI0MiwiaWQiOiI5NTYxNjA1YjEwNjJj...
DEBUG: Extracted base64 event (length=616): eyJraW5kIjoyNDI0MiwiaWQiOiI5NTYxNjA1YjEwNjJjZTM3ZTk1YWI5YjgxZDMwMGQ5YWQ1YmZiOWM1NDRhZTM5NWUxZWI0MWYw...
DEBUG: Base64 decode result - decoded_len=461
DEBUG: Successfully decoded JSON (length=461): {"kind":24242,"id":"9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6","pubkey":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","created_at":1755685428,"tags":[["t","upload"],["x","84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"],["expiration","1755689028"]],"content":"","sig":"95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead"}
✅ SUCCESS: Authorization header parsed successfully
️ INFO: Decoded JSON: {"kind":24242,"id":"9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6","pubkey":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","created_at":1755685428,"tags":[["t","upload"],["x","84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"],["expiration","1755689028"]],"content":"","sig":"95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead"}
🔍 STEP PARSE-2: Parsing JSON string
✅ SUCCESS: JSON parsing successful
═══════════════════════════════════════════════════════════════════
🔍 STEP ANALYZE-1: Analyzing event field details
️ INFO: Field 'kind':
️ INFO: Type: Number
️ INFO: Value: 24242
️ INFO: Field 'id':
️ INFO: Type: String
️ INFO: Value: '9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6'
️ INFO: Length: 64
️ INFO: Field 'pubkey':
️ INFO: Type: String
️ INFO: Value: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'
️ INFO: Length: 64
️ INFO: Field 'created_at':
️ INFO: Type: Number
️ INFO: Value: 1755685428
️ INFO: Field 'tags':
️ INFO: Type: Array
️ INFO: Size: 3
️ INFO: Field 'content':
️ INFO: Type: String
️ INFO: Value: ''
️ INFO: Length: 0
️ INFO: Field 'sig':
️ INFO: Type: String
️ INFO: Value: '95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead'
️ INFO: Length: 128
🔍 STEP MAIN-1: Running detailed structure validation
═══════════════════════════════════════════════════════════════════
🔍 STEP STRUCT-1: Starting detailed structure validation
✅ SUCCESS: Event is valid JSON object
🔍 STEP STRUCT-2: Checking required field existence
✅ SUCCESS: Field 'id' exists
✅ SUCCESS: Field 'pubkey' exists
✅ SUCCESS: Field 'created_at' exists
✅ SUCCESS: Field 'kind' exists
✅ SUCCESS: Field 'tags' exists
✅ SUCCESS: Field 'content' exists
✅ SUCCESS: Field 'sig' exists
🔍 STEP STRUCT-3: Validating field types
✅ SUCCESS: Field 'id' is string
✅ SUCCESS: Field 'pubkey' is string
✅ SUCCESS: Field 'created_at' is number
✅ SUCCESS: Field 'kind' is number
✅ SUCCESS: Field 'tags' is array
✅ SUCCESS: Field 'content' is string
✅ SUCCESS: Field 'sig' is string
🔍 STEP STRUCT-4: Validating hex string lengths
️ INFO: ID string: '9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6' (length: 64)
✅ SUCCESS: ID string length is correct (64 chars)
️ INFO: Pubkey string: '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' (length: 64)
✅ SUCCESS: Pubkey string length is correct (64 chars)
️ INFO: Signature string: '95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead' (length: 128)
✅ SUCCESS: Signature string length is correct (128 chars)
🔍 STEP STRUCT-5: Validating hex characters
️ INFO: Checking ID hex characters...
✅ SUCCESS: ID hex characters are valid (lowercase)
️ INFO: Checking pubkey hex characters...
✅ SUCCESS: Pubkey hex characters are valid (lowercase)
️ INFO: Checking signature hex characters...
✅ SUCCESS: Signature hex characters are valid (lowercase)
🔍 STEP STRUCT-6: Validating timestamp
️ INFO: Created_at timestamp: 1755685428
✅ SUCCESS: Timestamp is valid: 2025-08-20 10:23:48 UTC
🔍 STEP STRUCT-7: Validating kind
️ INFO: Event kind: 24242
✅ SUCCESS: Kind is valid: 24242
🔍 STEP STRUCT-8: Validating tags array structure
️ INFO: Tags array has 3 elements
️ INFO: Tag[0] has 2 elements
️ INFO: Tag[0][0]: 't'
️ INFO: Tag[0][1]: 'upload'
️ INFO: Tag[1] has 2 elements
️ INFO: Tag[1][0]: 'x'
️ INFO: Tag[1][1]: '84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b'
️ INFO: Tag[2] has 2 elements
️ INFO: Tag[2][0]: 'expiration'
️ INFO: Tag[2][1]: '1755689028'
✅ SUCCESS: Tags array structure is valid
🔍 STEP STRUCT-9: Validating content
️ INFO: Content: '' (length: 0)
✅ SUCCESS: Content is valid string
✅ SUCCESS: Structure validation completed successfully
✅ SUCCESS: Detailed structure validation PASSED
🔍 STEP MAIN-2: Running detailed signature validation
═══════════════════════════════════════════════════════════════════
🔍 STEP CRYPTO-1: Starting detailed signature validation
🔍 STEP CRYPTO-2: Creating serialization array
✅ SUCCESS: Serialization array created
🔍 STEP CRYPTO-3: Converting to JSON string
✅ SUCCESS: JSON serialization string created
️ INFO: Serialization string (length 208): [0,"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",1755685428,24242,[["t","upload"],["x","84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"],["expiration","1755689028"]],""]
🔍 STEP CRYPTO-4: Computing SHA256 hash
✅ SUCCESS: SHA256 hash computed
️ INFO: Event hash (32 bytes):
0000: 95 61 60 5b 10 62 ce 37 e9 5a b9 b8 1d 30 0d 9a |.a`[.b.7.Z...0..|
0010: d5 bf b9 c5 44 ae 39 5e 1e b4 1f 00 0c 7d 89 f6 |....D.9^.....}..|
🔍 STEP CRYPTO-5: Verifying event ID
️ INFO: Calculated ID: 9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6
️ INFO: Provided ID: 9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6
✅ SUCCESS: Event ID verification passed
🔍 STEP CRYPTO-6: Preparing signature verification
🔍 STEP CRYPTO-7: Converting hex strings to bytes
✅ SUCCESS: Pubkey hex converted to bytes
️ INFO: Pubkey bytes (32 bytes):
0000: 79 be 66 7e f9 dc bb ac 55 a0 62 95 ce 87 0b 07 |y.f~....U.b.....|
0010: 02 9b fc db 2d ce 28 d9 59 f2 81 5b 16 f8 17 98 |....-.(.Y..[....|
✅ SUCCESS: Signature hex converted to bytes
️ INFO: Signature bytes (64 bytes):
0000: 95 31 6a b7 5f 8d 02 bb 99 5a 12 48 c2 74 b9 9f |.1j._....Z.H.t..|
0010: 9b c5 dc 0a f5 64 9e 69 49 01 5d 06 99 04 d4 bd |.....d.iI.].....|
0020: f3 a3 c7 94 27 ac 82 45 69 86 a2 e9 37 b1 d2 5b |....'..Ei...7..[|
0030: 6d 2e e8 ee 1e 44 6a 84 9c b1 97 74 df 94 8e ad |m....Dj....t....|
🔍 STEP CRYPTO-8: Parsing public key into secp256k1 format
✅ SUCCESS: Public key parsed into secp256k1 format
🔍 STEP CRYPTO-9: Verifying Schnorr signature
✅ SUCCESS: Schnorr signature verification PASSED!
✅ SUCCESS: Detailed signature validation PASSED
═══════════════════════════════════════════════════════════════════
🔍 STEP COMPARE-1: Running standard nostr_validate_event for comparison
️ INFO: nostr_validate_event result: 0 (Success)
✅ SUCCESS: Standard validation PASSED - matches detailed validation
🔍 STEP COMPARE-2: Running server-style authentication (exact mirror of server code)
═══════════════════════════════════════════════════════════════════
🔍 STEP SERVER-1: Starting server-style authentication (mirroring main.c)
️ INFO: Server-style auth called with method: upload, hash: 84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b
🔍 STEP SERVER-2: Calling parse_authorization_header
DEBUG: parse_authorization_header called with header: Nostr eyJraW5kIjoyNDI0MiwiaWQiOiI5NTYxNjA1YjEwNjJj...
DEBUG: Extracted base64 event (length=616): eyJraW5kIjoyNDI0MiwiaWQiOiI5NTYxNjA1YjEwNjJjZTM3ZTk1YWI5YjgxZDMwMGQ5YWQ1YmZiOWM1NDRhZTM5NWUxZWI0MWYw...
DEBUG: Base64 decode result - decoded_len=461
DEBUG: Successfully decoded JSON (length=461): {"kind":24242,"id":"9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6","pubkey":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","created_at":1755685428,"tags":[["t","upload"],["x","84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"],["expiration","1755689028"]],"content":"","sig":"95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead"}
✅ SUCCESS: parse_authorization_header succeeded
🔍 STEP SERVER-3: Calling cJSON_Parse on JSON string
️ INFO: JSON to parse: {"kind":24242,"id":"9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6","pubkey":"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","created_at":1755685428,"tags":[["t","upload"],["x","84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"],["expiration","1755689028"]],"content":"","sig":"95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead"}
✅ SUCCESS: cJSON_Parse succeeded, event parsed
️ INFO: Parsed JSON: {
"kind": 24242,
"id": "9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6",
"pubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
"created_at": 1755685428,
"tags": [["t", "upload"], ["x", "84716171bab16ad021bd8953050189fe6075917436cd11cc933f021bbc5d5b0b"], ["expiration", "1755689028"]],
"content": "",
"sig": "95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead"
}
🔍 STEP SERVER-4: Event fields before validation
️ INFO: id: 9561605b1062ce37e95ab9b81d300d9ad5bfb9c544ae395e1eb41f000c7d89f6
️ INFO: pubkey: 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
️ INFO: sig: 95316ab75f8d02bb995a1248c274b99f9bc5dc0af5649e6949015d069904d4bdf3a3c79427ac82456986a2e937b1d25b6d2ee8ee1e446a849cb19774df948ead
️ INFO: kind: 24242
️ INFO: created_at: 1755685428
🔍 STEP SERVER-5: Detailed pubkey analysis
️ INFO: Pubkey: 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
️ INFO: Length: 64
️ INFO: Character analysis (first 10):
7(0x37) 9(0x39) b(0x62) e(0x65) 6(0x36) 6(0x36) 7(0x37) e(0x65) f(0x66) 9(0x39)
🔍 STEP SERVER-6: Pre-validation pubkey analysis
️ INFO: Pubkey: 79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
️ INFO: Length: 64
️ INFO: Character analysis (first 10):
7(55) 9(57) b(98) e(101) 6(54) 6(54) 7(55) e(101) f(102) 9(57)
️ INFO: Character validation test:
ALL VALID (lowercase hex)
🔍 STEP SERVER-7: Starting detailed validation analysis
️ INFO: Testing structure validation...
️ INFO: nostr_validate_event_structure returned: 0 (Success)
✅ SUCCESS: Structure validation PASSED
️ INFO: Testing cryptographic verification...
️ INFO: nostr_verify_event_signature returned: 0 (Success)
✅ SUCCESS: Crypto verification PASSED
️ INFO: Testing complete validation...
️ INFO: nostr_validate_event returned: 0 (Success)
✅ SUCCESS: Complete validation PASSED
✅ SUCCESS: Server-style authentication successful, returning NOSTR_SUCCESS
️ INFO: server_style_authentication result: 0 (Success)
✅ SUCCESS: Server-style validation PASSED
═══════════════════════════════════════════════════════════════════
✅ SUCCESS: 🎉 ALL DETAILED VALIDATIONS PASSED! Event is completely valid.
✅ Structure validation: PASSED
✅ Signature validation: PASSED
✅ Standard validation: PASSED
✅ Server-style validation: PASSED
═══════════════════════════════════════════════════════════════════
✅ SUCCESS: 🔍 DETAILED COMPARISON COMPLETE
✅ SUCCESS: 🎯 ALL VALIDATION METHODS AGREE: Event is valid
═══════════════════════════════════════════════════════════════════