@@ -3,6 +3,7 @@ import { validate } from '../../lib/response';
33import fs from 'fs' ;
44
55// Tests Configuration
6+ const digestValueComment = fs . readFileSync ( './test/assets/digestValueComment.xml' ) . toString ( ) ;
67const validResponse = fs . readFileSync ( './test/assets/saml20.validResponse.xml' ) . toString ( ) ;
78const validResponseNoIRT = fs . readFileSync ( './test/assets/saml20.validResponse-noirt.xml' ) . toString ( ) ;
89const validResponseUnsanitized = fs
@@ -129,4 +130,39 @@ describe('lib.saml20.response', function () {
129130 assert . strictEqual ( result , 'Invalid InResponseTo.' ) ;
130131 }
131132 } ) ;
133+
134+ it ( 'Should fail with invalid signature' , async function ( ) {
135+ try {
136+ await validate ( digestValueComment , {
137+ publicKey : `MIIDzzCCAregAwIBAgIUMZMb3dfDNPcYK9rYUCz6U/Y/vdwwDQYJKoZIhvcN
138+ AQELBQAwdzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMREwDwYDVQQH
139+ DAhMb2NhdGlvbjEVMBMGA1UECgwMT3JnYW5pemF0aW9uMREwDwYDVQQLDAhP
140+ cmcgVW5pdDEbMBkGA1UEAwwScG9jLnNlY3VyZXNhbWwuY29tMB4XDTI0MTEy
141+ ODA1NDYyN1oXDTM0MTEyNjA1NDYyN1owdzELMAkGA1UEBhMCVVMxDjAMBgNV
142+ BAgMBVN0YXRlMREwDwYDVQQHDAhMb2NhdGlvbjEVMBMGA1UECgwMT3JnYW5p
143+ emF0aW9uMREwDwYDVQQLDAhPcmcgVW5pdDEbMBkGA1UEAwwScG9jLnNlY3Vy
144+ ZXNhbWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArBx4
145+ nG94nZJvXMSWkkJMxWMTY5YS53MegLD/DOMgM5n5tXBRewAgFkEdL6tclvqK
146+ EP80yc5N/KSdGZrbwD5oKhw4+4+GTpRSSoleFLhSYr0DZvTMvFHMgB45SddU
147+ A3DkcI0ZSF+RExZQhMypYxNjEMkKL5EJDh7d+Xt9FCVQ1GKjVRI12jeXOvTQ
148+ TOefPaz314aFBJ0XfqP3tl08jJAWC2kOgi9vB43Xu7u//FgubRifhwcVkzFt
149+ WLdDJSm/Q3qHkV8QDb4TL54dGHdXUP8wo0msqt2WXGZ691VYrRXw8dYmthl7
150+ KeVwcBsUUbUr2jA+Ia2hxnbBTfPY2m9ZfKEBUQIDAQABo1MwUTAdBgNVHQ4E
151+ FgQUknvBAHKXFwZjDB0rSvTGi2e/7n0wHwYDVR0jBBgwFoAUknvBAHKXFwZj
152+ DB0rSvTGi2e/7n0wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
153+ AQEAj9BFFl9jSvmR/3GipWuBAC84jEdEzLk6o8AgqZGdBABFAK3TURlQLTli
154+ Nj17zqOlr3xHBorX9iCk46IZZ5ARjjjwzQZ5mzGsMYp+LPlC+w9G1AsqwXCL
155+ 619+JQ5ORHN7kMHgQYIzkKe8FRa0NjBAl0FIwCe0DWGrbuNrQB5p5h/77TTF
156+ N+/ESjVbK0m/ubsl4tBnDqR3aq7KiBNr0e1yTF17Gg5iHc1ofINzq5i30/4v
157+ GGw0ohtr4ihg6J3hdwUIVnRknfuN3tE80jSF4e1LRojlyFoQXcg4emXq0Jn8
158+ lj6sw9dhQDq19MYaXchAuJMkWmXwt9e/CaWm7JRyuUgBcg==` ,
159+ audience : 'https://poc.securesaml.com/sp/acs' ,
160+ bypassExpiration : true ,
161+ } ) ;
162+ } catch ( error ) {
163+ const result = ( error as Error ) . message ;
164+ console . log ( 'result:' , result ) ;
165+ assert . strictEqual ( result , 'Invalid assertion signature.' ) ;
166+ }
167+ } ) ;
132168} ) ;
0 commit comments