@@ -586,12 +586,15 @@ public function testWriteCoreSignatureWithInvalidModifiedHtaccess(): void {
586586 public function testWriteCoreSignatureWithValidModifiedHtaccess (): void {
587587 $ expectedSignatureFileData = '{
588588 "hashes": {
589- ".htaccess": "b1a6a9fbb85417f3f461e654f1a8ae56a131fe54e4257b2b8b7ba6b3fedd55b83c0df20550cd6c52bd3a96d148a5a3c4ea24d99dca5d45a644491e56ad99df8e ",
589+ ".htaccess": "ee900c70c32f5475f301648f790f0836f330fe77af94154dfec7d290327c14b505aaea27945eb6862eaa104bbf8346c011752767af455b77b6676e382bcd5344 ",
590590 "subfolder\/.htaccess": "2c57b1e25050e11dc3ae975832f378c452159f7b69f818e47eeeafadd6ba568517461dcb4d843b90b906cd7c89d161bc1b89dff8e3ae0eb6f5088508c47befd1"
591591 },
592- "signature": "nkCCG4hEtRyIo7rxnBBTCYtb4aIoCZA/bgbi8OrsKA9ZcZBEWqpSjWMvl9K88e+Ci/HIynv3Y/JdsN4OABRnNtyTMgsVuzqqK+mYYTFlzmRBmCNJjHSjVgfxQ6vhlYGwTGJWuhxFY5sv/dolx2G3TP7fJT71XdWI/wPkoCoQpDCx4ciFHJMAX9cuHkqpfIJXzCP9P+zt5DJjm9UHGII9DJxu/I47ujTqYIgo6QyGZqp91ydy1wkM7xcLt5koTRQRfR8xtyFFEuk3FvNgI/Do+55aClpksae2wMxDfThe37Yya5ibIlTmeYUDWLa8zv2SdVVvsGUcPewICOElAIkIWo69GFvJxW4vroal42/EDB9WQxUG/2uIksQEsDQmKCc0h6pyTViP47AG+6lUa59HMvzNGxuHjH3ByQQd0zO2Q48G3X9oh4IGNy5oChAnBkwwzlp9/eHjg+D9yjNP3ZfxX9xC3e1H2JF9/J600Q047NUYrylQsxzpxXDkk6xkRJyJ6/55tNzGIekNJie3FIcTV14ZCKWCLOCRNwSdPZqvWZ7wyR+ap9hIJ/xyw6A1P2OgJwC0yUzw7L48gQRj3Nhl6LSGYcrjE6XjiXmiOt5Tu+eUlWk9A3vCSxFHO+QsjHowe6sm+BOlXodCjrgycpolb9eqBUc9T4VxwU+TZ9E6z+g =",
592+ "signature": "LhHHUjQlsNacPWGO7dmnDYNU4pvuVuaXAG01w41A6ijwTB1ii3khtaAJcsT4HYoDWLZ9KnmAYPwmYWjEh9xvzvC7arOFsZFixSjaEjNQADqwUwacyNCyJ4an3JRw/nZPJqAgCDOtr3pJWixf2v7qOWbJrlu7yB/SF3wiSXRfE1s6Y8jAMERZJ5bfMjiLC1yXJ4VpIzn5ed3RnWfl0MWtPr/XEtOLkh+eoSExhmDw91w/gyJo4/+iCnnLjKDsIEPRcoe2/t4azaxdvCIwlStLsQXygXNUySeO2m2HnjZOCHy2E4MfTbrV8XuT3wPEYHWQTc3QAMehbjEsctTaI4RAoKbNtnjWrBqP+Z10cpIfiIENFMvMYu/mSzhZH84rjoywWaZ+MyQ+LxeMiugVZKLEEAWQ7rCKjBEILnJ1ssrTOkBf7tmom52FvCSTNkieEBNzupR5GjePRXfzrSXw56Yg8veq9ALkQH7yXviEiHlRDLa0F1MfOjp4QgJzH0yMVDZAnYjqWnHq05/VNxUJsMAtXHym9REekueo0WMTgqIAbV4ODSE5MBDGVSFGf+GkcpYaW6kl+lAF7UgoLTKCibNZNeeZzSy4h3aD3XGlQD3YGgN3smQRRNrfPjdgyy69x2wRarXZCsigvCDIlW/90Ubbaa9tbqPpODEkGR8M2Wbybzs =",
593593 "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
594594} ' ;
595+ $ expectedArray = json_decode ($ expectedSignatureFileData , true );
596+ $ actualArray = '' ;
597+
595598 $ this ->environmentHelper
596599 ->expects ($ this ->any ())
597600 ->method ('getServerRoot ' )
@@ -601,10 +604,8 @@ public function testWriteCoreSignatureWithValidModifiedHtaccess(): void {
601604 ->method ('file_put_contents ' )
602605 ->with (
603606 \OC ::$ SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent/core/signature.json ' ,
604- $ this ->callback (function ($ signature ) use ($ expectedSignatureFileData ) {
605- $ expectedArray = json_decode ($ expectedSignatureFileData , true );
607+ $ this ->callback (function ($ signature ) use (&$ actualArray ) {
606608 $ actualArray = json_decode ($ signature , true );
607- $ this ->assertEquals ($ expectedArray , $ actualArray );
608609 return true ;
609610 })
610611 );
@@ -616,6 +617,10 @@ public function testWriteCoreSignatureWithValidModifiedHtaccess(): void {
616617 $ x509 = new X509 ();
617618 $ x509 ->loadX509 ($ keyBundle );
618619 $ this ->checker ->writeCoreSignature ($ x509 , $ rsa , \OC ::$ SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent ' );
620+
621+ // now check that the actual signature file content matches the expected content
622+ // we cannot do in the callback because throwing an assertion error there would not be properly reported by PHPUnit
623+ $ this ->assertEquals ($ expectedArray , $ actualArray );
619624 }
620625
621626 public function testVerifyCoreSignatureWithoutSignatureData (): void {
@@ -672,6 +677,10 @@ public function testVerifyCoreSignatureWithValidSignatureData(): void {
672677 $ this ->assertSame ([], $ this ->checker ->verifyCoreSignature ());
673678 }
674679
680+ /**
681+ * When updated use this to generate new signature data:
682+ * `occ integrity:sign-core --privateKey=./tests/data/integritycheck/core.key --certificate=./tests/data/integritycheck/core.crt --path=tests/data/integritycheck/htaccessWithValidModifiedContent`
683+ */
675684 public function testVerifyCoreSignatureWithValidModifiedHtaccessSignatureData (): void {
676685 $ this ->serverVersion
677686 ->expects ($ this ->once ())
@@ -689,10 +698,10 @@ public function testVerifyCoreSignatureWithValidModifiedHtaccessSignatureData():
689698 ->willReturn (\OC ::$ SERVERROOT . '/tests/data/integritycheck/htaccessWithValidModifiedContent ' );
690699 $ signatureDataFile = '{
691700 "hashes": {
692- ".htaccess": "b1a6a9fbb85417f3f461e654f1a8ae56a131fe54e4257b2b8b7ba6b3fedd55b83c0df20550cd6c52bd3a96d148a5a3c4ea24d99dca5d45a644491e56ad99df8e ",
701+ ".htaccess": "ee900c70c32f5475f301648f790f0836f330fe77af94154dfec7d290327c14b505aaea27945eb6862eaa104bbf8346c011752767af455b77b6676e382bcd5344 ",
693702 "subfolder\/.htaccess": "2c57b1e25050e11dc3ae975832f378c452159f7b69f818e47eeeafadd6ba568517461dcb4d843b90b906cd7c89d161bc1b89dff8e3ae0eb6f5088508c47befd1"
694703 },
695- "signature": "nkCCG4hEtRyIo7rxnBBTCYtb4aIoCZA/bgbi8OrsKA9ZcZBEWqpSjWMvl9K88e+Ci/HIynv3Y/JdsN4OABRnNtyTMgsVuzqqK+mYYTFlzmRBmCNJjHSjVgfxQ6vhlYGwTGJWuhxFY5sv/dolx2G3TP7fJT71XdWI/wPkoCoQpDCx4ciFHJMAX9cuHkqpfIJXzCP9P+zt5DJjm9UHGII9DJxu/I47ujTqYIgo6QyGZqp91ydy1wkM7xcLt5koTRQRfR8xtyFFEuk3FvNgI/Do+55aClpksae2wMxDfThe37Yya5ibIlTmeYUDWLa8zv2SdVVvsGUcPewICOElAIkIWo69GFvJxW4vroal42/EDB9WQxUG/2uIksQEsDQmKCc0h6pyTViP47AG+6lUa59HMvzNGxuHjH3ByQQd0zO2Q48G3X9oh4IGNy5oChAnBkwwzlp9/eHjg+D9yjNP3ZfxX9xC3e1H2JF9/J600Q047NUYrylQsxzpxXDkk6xkRJyJ6/55tNzGIekNJie3FIcTV14ZCKWCLOCRNwSdPZqvWZ7wyR+ap9hIJ/xyw6A1P2OgJwC0yUzw7L48gQRj3Nhl6LSGYcrjE6XjiXmiOt5Tu+eUlWk9A3vCSxFHO+QsjHowe6sm+BOlXodCjrgycpolb9eqBUc9T4VxwU+TZ9E6z+g =",
704+ "signature": "LhHHUjQlsNacPWGO7dmnDYNU4pvuVuaXAG01w41A6ijwTB1ii3khtaAJcsT4HYoDWLZ9KnmAYPwmYWjEh9xvzvC7arOFsZFixSjaEjNQADqwUwacyNCyJ4an3JRw\/nZPJqAgCDOtr3pJWixf2v7qOWbJrlu7yB\/SF3wiSXRfE1s6Y8jAMERZJ5bfMjiLC1yXJ4VpIzn5ed3RnWfl0MWtPr\/XEtOLkh+eoSExhmDw91w\/gyJo4\/+iCnnLjKDsIEPRcoe2\/t4azaxdvCIwlStLsQXygXNUySeO2m2HnjZOCHy2E4MfTbrV8XuT3wPEYHWQTc3QAMehbjEsctTaI4RAoKbNtnjWrBqP+Z10cpIfiIENFMvMYu\/mSzhZH84rjoywWaZ+MyQ+LxeMiugVZKLEEAWQ7rCKjBEILnJ1ssrTOkBf7tmom52FvCSTNkieEBNzupR5GjePRXfzrSXw56Yg8veq9ALkQH7yXviEiHlRDLa0F1MfOjp4QgJzH0yMVDZAnYjqWnHq05\/VNxUJsMAtXHym9REekueo0WMTgqIAbV4ODSE5MBDGVSFGf+GkcpYaW6kl+lAF7UgoLTKCibNZNeeZzSy4h3aD3XGlQD3YGgN3smQRRNrfPjdgyy69x2wRarXZCsigvCDIlW\/90Ubbaa9tbqPpODEkGR8M2Wbybzs =",
696705 "certificate": "-----BEGIN CERTIFICATE-----\r\nMIIEvjCCAqagAwIBAgIUc\/0FxYrsgSs9rDxp03EJmbjN0NwwDQYJKoZIhvcNAQEF\r\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTEw\r\nMzIxMDMzM1oXDTE2MTEwMzIxMDMzM1owDzENMAsGA1UEAwwEY29yZTCCAiIwDQYJ\r\nKoZIhvcNAQEBBQADggIPADCCAgoCggIBALb6EgHpkAqZbO5vRO8XSh7G7XGWHw5s\r\niOf4RwPXR6SE9bWZEm\/b72SfWk\/\/J6AbrD8WiOzBuT\/ODy6k5T1arEdHO+Pux0W1\r\nMxYJJI4kH74KKgMpC0SB0Rt+8WrMqV1r3hhJ46df6Xr\/xolP3oD+eLbShPcblhdS\r\nVtkZEkoev8Sh6L2wDCeHDyPxzvj1w2dTdGVO9Kztn0xIlyfEBakqvBWtcxyi3Ln0\r\nklnxlMx3tPDUE4kqvpia9qNiB1AN2PV93eNr5\/2riAzIssMFSCarWCx0AKYb54+d\r\nxLpcYFyqPJ0ydBCkF78DD45RCZet6PNYkdzgbqlUWEGGomkuDoJbBg4wzgzO0D77\r\nH87KFhYW8tKFFvF1V3AHl\/sFQ9tDHaxM9Y0pZ2jPp\/ccdiqnmdkBxBDqsiRvHvVB\r\nCn6qpb4vWGFC7vHOBfYspmEL1zLlKXZv3ezMZEZw7O9ZvUP3VO\/wAtd2vUW8UFiq\r\ns2v1QnNLN6jNh51obcwmrBvWhJy9vQIdtIjQbDxqWTHh1zUSrw9wrlklCBZ\/zrM0\r\ni8nfCFwTxWRxp3H9KoECzO\/zS5R5KIS7s3\/wq\/w9T2Ie4rcecgXwDizwnn0C\/aKc\r\nbDIjujpL1s9HO05pcD\/V3wKcPZ1izymBkmMyIbL52iRVN5FTVHeZdXPpFuq+CTQJ\r\nQ238lC+A\/KOVAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBAGoKTnh8RfJV4sQItVC2\r\nAvfJagkrIqZ3iiQTUBQGTKBsTnAqE1H7QgUSV9vSd+8rgvHkyZsRjmtyR1e3A6Ji\r\noNCXUbExC\/0iCPUqdHZIVb+Lc\/vWuv4ByFMybGPydgtLoEUX2ZrKFWmcgZFDUSRd\r\n9Uj26vtUhCC4bU4jgu6hIrR9IuxOBLQUxGTRZyAcXvj7obqRAEZwFAKQgFpfpqTb\r\nH+kjcbZSaAlLVSF7vBc1syyI8RGYbqpwvtREqJtl5IEIwe6huEqJ3zPnlP2th\/55\r\ncf3Fovj6JJgbb9XFxrdnsOsDOu\/tpnaRWlvv5ib4+SzG5wWFT5UUEo4Wg2STQiiX\r\nuVSRQxK1LE1yg84bs3NZk9FSQh4B8vZVuRr5FaJsZZkwlFlhRO\/\/+TJtXRbyNgsf\r\noMRZGi8DLGU2SGEAHcRH\/QZHq\/XDUWVzdxrSBYcy7GSpT7UDVzGv1rEJUrn5veP1\r\n0KmauAqtiIaYRm4f6YBsn0INcZxzIPZ0p8qFtVZBPeHhvQtvOt0iXI\/XUxEWOa2F\r\nK2EqhErgMK\/N07U1JJJay5tYZRtvkGq46oP\/5kQG8hYST0MDK6VihJoPpvCmAm4E\r\npEYKQ96x6A4EH9Y9mZlYozH\/eqmxPbTK8n89\/p7Ydun4rI+B2iiLnY8REWWy6+UQ\r\nV204fGUkJqW5CrKy3P3XvY9X\r\n-----END CERTIFICATE-----"
697706} ' ;
698707 $ this ->fileAccessHelper
0 commit comments