38ee6aad0bc799674134bf1e0ae2fe123876c789
[gpgme.git] / lang / js / BrowserTestExtension / tests / inputvalues.js
1 /* gpgme.js - Javascript integration for gpgme
2  * Copyright (C) 2018 Bundesamt für Sicherheit in der Informationstechnik
3  *
4  * This file is part of GPGME.
5  *
6  * GPGME is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as
8  * published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * GPGME is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this program; if not, see <http://www.gnu.org/licenses/>.
18  * SPDX-License-Identifier: LGPL-2.1+
19  */
20
21 var inputvalues = {
22     encrypt: {
23         good:{
24             data : 'Hello World.',
25             // Fingerprint of a key that has been imported to gnupg (i.e. see testkey.pub; testkey.sec)
26             fingerprint : 'D41735B91236FDB882048C5A2301635EEFF0CB05',
27             data_nonascii: '¡Äußerste µ€ før ñoquis@hóme! Добрый день',
28
29             // used for checking encoding consistency in > 2MB messages.
30             data_nonascii_32: [
31                 'K€K€K€K€K€K€K€K€K€K€K€K€K€K€K€K€',
32                 'µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€',
33                 '€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€',
34                 '²³²³²³²³²³²³²³²³²³²³²³²³²³²³²³²³',
35                 'µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€A€µ€µ€µ€µ€',
36                 'µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µ€µAµ€µ€µ€µ€',
37                 'üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü',
38                 'µAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA€',
39                 'µAAAAµAAAAAAAAAAAAAAAAAAAAAAAAA€',
40                 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAµ€',
41                 'µAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA°',
42                 '€AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA€',
43                 'µ||||||||||||||||||||||||||||||€',
44                 'æſæſ³¼„¬“³³¬“¬½”æſæſ³¼„¬“³³¬“¬½”'
45             ]
46         },
47         bad: {
48             // valid Hex value, but not usable (not imported to gnupg, or bogus fingerprint)
49             fingerprint: 'CDC3A2B2860625CCBFC5AAAAAC6D1B604967FC4A'
50         }
51     },
52     init: {
53         // some parameters
54         invalid_startups: [
55             {all_passwords: true},
56             'openpgpmode',
57             {api_style:"frankenstein"}
58         ]
59     }
60 };
61
62 // (Pseudo-)Random String from a Uint8Array, given approx. size in Megabytes
63 function bigString(megabytes){
64     let maxlength = 1024 * 1024 * megabytes;
65     let uint = new Uint8Array(maxlength);
66     for (let i= 0; i < maxlength; i++){
67         uint[i] = Math.random() * Math.floor(256);
68     }
69     return new TextDecoder('utf-8').decode(uint);
70 }
71
72 // (Pseudo-)Random Uint8Array, given size in Megabytes
73 function bigUint8(megabytes){
74     let maxlength = 1024 * 1024 * megabytes;
75     let uint = new Uint8Array(maxlength);
76     for (let i= 0; i < maxlength; i++){
77         uint[i] = Math.random() * Math.floor(256);
78     }
79     return uint;
80 }
81
82 // (Pseudo-)Random string with very limited charset (ascii only, no control chars)
83 function bigBoringString(megabytes){
84     let maxlength = 1024 * 1024 * megabytes;
85     let string = '';
86     let chars = ' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
87     for (let i= 0; i < maxlength; i++){
88         string = string + chars[Math.floor(Math.random() * chars.length)];
89     }
90     return string;
91 }
92
93 // Some String with simple chars, with different characteristics, but still
94 // expected to occur in an averag message
95 function slightlyLessBoringString(megabytes, set){
96     let maxlength = 1024 * 1024 * megabytes;
97     let string = '';
98     let chars = '';
99     if (set ===1 ) {
100         chars = '\n\"\r \'';
101     } else if (set === 2 ) {
102         chars = '()=?`#+-{}[]';
103     } else if (set === 3){
104         chars = '^°/';
105     } else if (set ===4) {
106         chars = 'äüßµüþÖ~ɁÑ||@';
107     } else {
108         chars = '*<>\n\"\r§$%&/()=?`#+-{}[] \'';
109     }
110     for (let i= 0; i < maxlength; i++){
111         string = string + chars[Math.floor(Math.random() * chars.length)];
112     }
113     return string;
114 }
115
116 // Data encrypted with testKey
117 var encryptedData =
118     '-----BEGIN PGP MESSAGE-----\n' +
119     '\n' +
120     'hQEMA6B8jfIUScGEAQgAlANd3uyhmhYLzVcfz4LEqA8tgUC3n719YH0iuKEzG/dv\n' +
121     'B8fsIK2HoeQh2T3/Cc2LBMjgn4K33ksG3k2MqrbIvxWGUQlOAuggc259hquWtX9B\n' +
122     'EcEoOAeh5DuZT/b8CM5seJKNEpPzNxbEDiGikp9DV9gfIQTTUnrDjAu5YtgCN9vA\n' +
123     '3PJxihioH8ODoQw2jlYSkqgXpBVP2Fbx7qgTuxGNu5w36E0/P93//4hDXcKou7ez\n' +
124     'o0+NEGSkbaY+OPk1k7k9n+vBSC3F440dxsTNs5WmRvx9XZEotJkUBweE+8XaoLCn\n' +
125     '3RrtyD/lj63qi3dbyI5XFLuPU1baFskJ4UAmI4wNhdJ+ASailpnFBnNgiFBh3ZfB\n' +
126     'G5Rmd3ocSL7l6lq1bVK9advXb7vcne502W1ldAfHgTdQgc2CueIDFUYAaXP2OvhP\n' +
127     'isGL7jOlDCBKwep67ted0cTRPLWkk3NSuLIlvD5xs6L4z3rPu92gXYgbZoMMdP0N\n' +
128     'kSAQYOHplfA7YJWkrlRm\n' +
129     '=zap6\n' +
130     '-----END PGP MESSAGE-----\n';