Browse Source

Update key to use algorithms supported in both libressl 2 and openssl3

Mark Story 4 years ago
parent
commit
0bf2c12845

+ 37 - 75
tests/TestCase/Http/Client/Auth/OauthTest.php

@@ -25,41 +25,27 @@ use Cake\TestSuite\TestCase;
  */
 class OauthTest extends TestCase
 {
-    private $privateKeyString = '-----BEGIN RSA PRIVATE KEY-----
-MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALRiMLAh9iimur8V
-A7qVvdqxevEuUkW4K+2KdMXmnQbG9Aa7k7eBjK1S+0LYmVjPKlJGNXHDGuy5Fw/d
-7rjVJ0BLB+ubPK8iA/Tw3hLQgXMRRGRXXCn8ikfuQfjUS1uZSatdLB81mydBETlJ
-hI6GH4twrbDJCR2Bwy/XWXgqgGRzAgMBAAECgYBYWVtleUzavkbrPjy0T5FMou8H
-X9u2AC2ry8vD/l7cqedtwMPp9k7TubgNFo+NGvKsl2ynyprOZR1xjQ7WgrgVB+mm
-uScOM/5HVceFuGRDhYTCObE+y1kxRloNYXnx3ei1zbeYLPCHdhxRYW7T0qcynNmw
-rn05/KO2RLjgQNalsQJBANeA3Q4Nugqy4QBUCEC09SqylT2K9FrrItqL2QKc9v0Z
-zO2uwllCbg0dwpVuYPYXYvikNHHg+aCWF+VXsb9rpPsCQQDWR9TT4ORdzoj+Nccn
-qkMsDmzt0EfNaAOwHOmVJ2RVBspPcxt5iN4HI7HNeG6U5YsFBb+/GZbgfBT3kpNG
-WPTpAkBI+gFhjfJvRw38n3g/+UeAkwMI2TJQS4n8+hid0uus3/zOjDySH3XHCUno
-cn1xOJAyZODBo47E+67R4jV1/gzbAkEAklJaspRPXP877NssM5nAZMU0/O/NGCZ+
-3jPgDUno6WbJn5cqm8MqWhW1xGkImgRk+fkDBquiq4gPiT898jusgQJAd5Zrr6Q8
-AO/0isr/3aa6O6NLQxISLKcPDk2NOccAfS/xOtfOz4sJYM3+Bs4Io9+dZGSDCA54
-Lw03eHTNQghS0A==
------END RSA PRIVATE KEY-----';
-
-    private $privateKeyStringEnc = '-----BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-CBC,E65DB7AE7A05EF23
-
-QCXAQ/Uj1+7uQp0MyDUPlKvW/28PhbT4GxflBYmU6SxKZ2CVFPk0M8RgB6gkJyVv
-mwjo1Ch2Tlt7/VrNfLWGIh1XPhsC3gatv8Wv+g0keWWifaHlhXulgMGREJ7QeJg0
-5THvdFuIs2qQnOzPCAwONjM6yMxPb2qxvwq0UKAL5V/CYVFWS6PYdR25f9ogXxBz
-c3QjvvnhQ7ipNjpjVp/XKYMYnZPCYkNYvRX+BcsWlqYtclO3m+xPG+mPAFs9hnBI
-wHI4yC2fl52giRc7XnSl7NNjun6RpHT/Cn7JDH6ql86pgMO0dw6PDzPf0KY9DCrR
-ldQyzQ8WjN3FU55+En+8zmSnxUu7EbdqZwhVEF+UwfJ7IqJUnHll0aDTUA/qq0dk
-DqtMKIXvRnDVZJqKxHyRvARf8Zp8USsq3cVdlA9PhtcKrs4CbTDL0lJ3eWj1bDS1
-kIHXYo19lBqcS1oX+6TqvEs69oW/aG8UZIONN0Xh5TbxuJMedXD1dexV9oOA9lGR
-cS6Ye0wC7fCdnA6jfAmHFJ5t2qk7FOzcFZwap7m+EWn11z+72GVqz3BDSe5qH2m2
-XOHl59rVtJsZFtjyQEV34IFYyb2qBHHqUUdKwIwT1JOZIq+IdTJxaieIb1mnlmDw
-DDf4Kwr0C9tti1R1IsPaAmjF7eH0PGbDGAB3fJSCXbHf7EXTz1AUdknd2MHXQ7wO
-UBABkD2ETB+EotdHTly5FQt0jwbHfF2najBmezxtEjIygCnDb02Rtuei4HTansBu
-shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
------END RSA PRIVATE KEY-----';
+    /**
+     * @var string
+     */
+    private $privateKeyString;
+
+    /**
+     * @var string
+     */
+    private $privateKeyStringEnc;
+
+    /**
+     * Setup
+     *
+     * @return void
+     */
+    public function setUp(): void
+    {
+        parent::setUp();
+        $this->privateKeyString = file_get_contents(TEST_APP . DS . 'config' . DS . 'key.pem');
+        $this->privateKeyStringEnc = file_get_contents(TEST_APP . DS . 'config' . DS . 'key_with_passphrase.pem');
+    }
 
     public function testExceptionUnknownSigningMethod(): void
     {
@@ -336,11 +322,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'tR3+Ty81lMeYAr/Fid0kMTYa/WM=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -365,11 +347,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = '2hr/eoFyTSuWc6SfZIvkhpeRHdM=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -399,11 +377,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -433,11 +407,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -469,11 +439,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -505,11 +471,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
     }
 
     /**
@@ -543,11 +505,7 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
         $expected = 0;
         $this->assertSame($expected, ftell($passphrase));
     }
@@ -583,12 +541,16 @@ shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
         $request = $auth->authentication($request, $options);
 
         $result = $request->getHeaderLine('Authorization');
-        $expected = 'jvTp/wX1TYtByB1m+Pbyo0lnCOLIsyGCH7wke8AUs3BpnwZJtAuEJkvQL2/9n4s5wUmUl4aCI4BwpraNx4RtEXMe5qg5T1LVTGliMRpKasKsW//e+RinhejgCuzoH26dyF8iY2ZZ/5D1ilgeijhV/vBka5twt399mXwaYdCwFYE=';
-        $this->assertStringContainsString(
-            'oauth_signature="' . $expected . '"',
-            urldecode($result)
-        );
+        $this->assertSignatureFormat($result);
         $expected = 0;
         $this->assertSame($expected, ftell($passphrase));
     }
+
+    protected function assertSignatureFormat($result)
+    {
+        $this->assertMatchesRegularExpression(
+            '/oauth_signature="[a-zA-Z0-9\/=+]+"/',
+            urldecode($result)
+        );
+    }
 }

+ 38 - 14
tests/test_app/config/key_with_passphrase.pem

@@ -1,18 +1,42 @@
 -----BEGIN RSA PRIVATE KEY-----
 Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-CBC,E65DB7AE7A05EF23
+DEK-Info: AES-128-CBC,E634910BEDC73C123DE64ACFF88B339C
 
-QCXAQ/Uj1+7uQp0MyDUPlKvW/28PhbT4GxflBYmU6SxKZ2CVFPk0M8RgB6gkJyVv
-mwjo1Ch2Tlt7/VrNfLWGIh1XPhsC3gatv8Wv+g0keWWifaHlhXulgMGREJ7QeJg0
-5THvdFuIs2qQnOzPCAwONjM6yMxPb2qxvwq0UKAL5V/CYVFWS6PYdR25f9ogXxBz
-c3QjvvnhQ7ipNjpjVp/XKYMYnZPCYkNYvRX+BcsWlqYtclO3m+xPG+mPAFs9hnBI
-wHI4yC2fl52giRc7XnSl7NNjun6RpHT/Cn7JDH6ql86pgMO0dw6PDzPf0KY9DCrR
-ldQyzQ8WjN3FU55+En+8zmSnxUu7EbdqZwhVEF+UwfJ7IqJUnHll0aDTUA/qq0dk
-DqtMKIXvRnDVZJqKxHyRvARf8Zp8USsq3cVdlA9PhtcKrs4CbTDL0lJ3eWj1bDS1
-kIHXYo19lBqcS1oX+6TqvEs69oW/aG8UZIONN0Xh5TbxuJMedXD1dexV9oOA9lGR
-cS6Ye0wC7fCdnA6jfAmHFJ5t2qk7FOzcFZwap7m+EWn11z+72GVqz3BDSe5qH2m2
-XOHl59rVtJsZFtjyQEV34IFYyb2qBHHqUUdKwIwT1JOZIq+IdTJxaieIb1mnlmDw
-DDf4Kwr0C9tti1R1IsPaAmjF7eH0PGbDGAB3fJSCXbHf7EXTz1AUdknd2MHXQ7wO
-UBABkD2ETB+EotdHTly5FQt0jwbHfF2najBmezxtEjIygCnDb02Rtuei4HTansBu
-shqoyFXJvizZzje7HaTQv/eJTuA6rUOzu/sAv/eBx2YAPkA8oa3qUw==
+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
 -----END RSA PRIVATE KEY-----