Browse Source

fcl-web: added des3 encoded pem example

mattias 3 years ago
parent
commit
8851c8968c
1 changed files with 54 additions and 0 deletions
  1. 54 0
      packages/fcl-web/tests/tcjwt.pp

+ 54 - 0
packages/fcl-web/tests/tcjwt.pp

@@ -40,6 +40,7 @@ type
     Property JWT : TJWT Read FJWT;
     Property JWT : TJWT Read FJWT;
     Property Key : TJWTKey Read FKey;
     Property Key : TJWTKey Read FKey;
     procedure GetTestPEM(out aPrivateKeyPEM, aPublicKeyPEM: string);
     procedure GetTestPEM(out aPrivateKeyPEM, aPublicKeyPEM: string);
+    procedure GetPEM_PrivateKeyRSA2048bitEncryptedDES3(out aPrivateKeyPEM, aPassPhrase, aPublicKeyPEM: string);
     procedure TestVerifyRSAPem(SignerClass: TJWTSignerClass); virtual;
     procedure TestVerifyRSAPem(SignerClass: TJWTSignerClass); virtual;
   published
   published
     procedure TestSignNone;
     procedure TestSignNone;
@@ -607,6 +608,59 @@ begin
   aPublicKeyPEM:=PublicKeyPem;
   aPublicKeyPEM:=PublicKeyPem;
 end;
 end;
 
 
+procedure TTestJWT.GetPEM_PrivateKeyRSA2048bitEncryptedDES3(out aPrivateKeyPEM,
+  aPassPhrase, aPublicKeyPEM: string);
+begin
+  // generated with
+  //   openssl genrsa -des3 -out private.pem 2048
+  aPrivateKeyPEM:=
+    '-----BEGIN RSA PRIVATE KEY-----'#10+
+    'Proc-Type: 4,ENCRYPTED'#10+
+    'DEK-Info: DES-EDE3-CBC,2951FE4DFF4DA350'#10+
+    ''#10+
+    'QIql1Ab/W9yaNw9ZrzRgCTHn1ox1Atxjr9R1tNKPM2punS5xooS3cTN/6671D8KU'#10+
+    '+lN9Kf2kmhKOp6xGQmE1Up0bY4GddoAmfzETR972ZoZ0THLUe1BhuVUJjMvUcrL2'#10+
+    'EafIoybcYcPEmtjoYbrdiLtwRhtHzWgezkDhkXVGstjSii3a8AUEeJuBQOVp5Zw5'#10+
+    'WtVWhUdse9GdF+RYCQMqgj86B2MuR/bL3e1HORG1YJrLmMjpVxdt1tMEog2tXsS4'#10+
+    '36+LjUqguePvX76CnkjowjXMSeKc6Bh0bDO7uUQDKgY1jHeclRVMwIJd0If7rTG5'#10+
+    'foiBDiT02RwPmYNHViJqHO58wc026V4IvELTspPZqoICEdvMt/UGO6ThUPcCyHpr'#10+
+    'tGWU+lKMKE2/k8O0bF8pRek6Sx3eoLUzRzEA7k1hSkkngqwqLmDNVMwc2O4PPdPS'#10+
+    'DIvecAWhM+hTINq8n/XwXem6RIRFMQ4ok2dHoAmu6NzSkMSNmUTWALkQXSDqIgpi'#10+
+    'bpNUOkBuZOzyCAsktxKdGRj26xHogJ4ctIVR/XirvEH8ixOr58Vb/GVJ5WwOmT6X'#10+
+    'tWxWVeVWgfxhV1CxWAJTUEBx+OfAzz9Vcv40c+QD4ZAzxLFLjAT38/jO4gp2KCrl'#10+
+    'YVKPoNReGDWj3h1nIm9/XbRPhtUd3okBJRDAQS6AhyJr0XRp1WDuhPrqUsTitFWG'#10+
+    'cqHAMMrtwkGaWDinx+NUdvJG7inCmT9VDbQQUERlb3xhufQgM77JUVNsd/UM8Knx'#10+
+    '3kX6FQuY4CsIzZmbW18YBVM8zWboMobNYoyr9qZCfP41W06M7tncW1A1q/Ac2xBZ'#10+
+    'AqPa4P4pdHEBEozBBEHG/NeDI4Gsu6H8U2NfeBk1sxsijtVXq8EM6ssBpckNsEJy'#10+
+    'aI7ElwJuRYK05UksWyYYY5Q0NYcne8Wxqcqdh0+QJmtBvWMcmXfCQ5PBxdlLrroW'#10+
+    '6pw9wYYngQBvpY49ksgG1syB5+2Srd0AFljcRZGYLfIWeCR8SvS8m3FGKVU7kaTz'#10+
+    '7cjsEThQzonuxF/+3ov16KcUYYjJcgNMekwReR9CLMg8khLt/DRegJ98sJEqEO94'#10+
+    '4t4HBNw2WDvlI+aYu8SkSWZ9f9wp6G6XstSuNMQTKV+fh2BXzgKFI9yk0ROHz9bD'#10+
+    'uHk1nbJKQ2h9k8Ve88WBXEAzN3keTSDLpUnvmkxmOZEoSXR+DGgsMTeC+QW6x/7G'#10+
+    'UNxYNWdSPoMQnhwfF3sXYMnOVxWmKm7rHM//kXcFQ9/NXAwY7E7b0OB9vvc5Bcw/'#10+
+    '4bSf4KwBtyhIub9UMiiEZbS+/g1ICMuw0dSd6QcGFEnVCOrx84mf9RpNmkR+wEum'#10+
+    '32RBZY0KmzIoqRkGNLgfImgyH+nXAjPRUrHlPpQ+nCAmVLdHFgTF8iu2QyoAypwy'#10+
+    'WuyZlOg1bDbTcO5nqliX59Tw8iU+PpU4U303GND3C6WpZVkZDUIRVP8sNP6v6stG'#10+
+    'SQFCmKshlOolBIvL2eF+MWYbpRznQ6k5SchO7k3yuLDMtFuLRTk6l0xgLYrM9DUO'#10+
+    '/Tf5sKIivecMLDzMprV4RvNdLnZsqDZBt4tfSuzWFPNcd2kURzTL6B1Mv09gTMpr'#10+
+    '-----END RSA PRIVATE KEY-----';
+
+  aPassPhrase:='testfprsa';
+
+  // public key extracted with
+  //   openssl rsa -in private.pem -outform PEM -pubout -out public.pem
+  aPublicKeyPEM:=
+    '-----BEGIN PUBLIC KEY-----'#10+
+    'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxMrTKa5P0NlPvX/iSBmH'#10+
+    'fyhZQ+9vH/UooubCIJbAq+EbG9HrdccJMd52AQQV1jGX9jQAJTYxb7GSBTWAs4Th'#10+
+    'FLlPxz5Nn43QxKs4mAaPlpg0X3A4PO4SDrWnqFo8cUnr8IZZWBpGePzM8Rr/KuRr'#10+
+    'IQSWAM7CMvTzmvdgT7IwQBuYjOz6YM0KIThFDuGBbnfSLGKx+3+WnoMihp2jYWLj'#10+
+    'jq7MHbXXnDPstCNARGWvb2Nwhrl339PZMColD8cE4FjKoPUE9qR1ndSys/mIGxW2'#10+
+    'YQgjmpBmvxYm3TCqBHo8E384XV+3+Ys0su2OjWRPyjqyiZ7Dt0dSFEW6SvrE/LuH'#10+
+    'hwIDAQAB'#10+
+    '-----END PUBLIC KEY-----';
+end;
+
 procedure TTestJWT.TestVerifyRSAPem(SignerClass: TJWTSignerClass);
 procedure TTestJWT.TestVerifyRSAPem(SignerClass: TJWTSignerClass);
 var
 var
   aInput, aPrivateKeyPEM, aPublicKeyPEM: String;
   aInput, aPrivateKeyPEM, aPublicKeyPEM: String;