source: prototipo_portal_2018/prototipo/static/js/functions/signFunctions.js @ ad582d7

Last change on this file since ad582d7 was ad582d7, checked in by Antonio Araujo <aaraujo@…>, 7 years ago

Agregado archivo con funciones javasccript.

  • Property mode set to 100644
File size: 3.5 KB
Line 
1<!-- tomado de https://open-eid.github.io/hwcrypto.js/sign.html -->
2
3
4        function log_text(s) {
5                var d = document.createElement("div");
6                d.innerHTML = s;
7                document.getElementById('log').appendChild(d);
8        }
9
10        function debug() {
11                window.hwcrypto.debug().then(function(response) {log_text("Debug: " + response);});
12        }
13       
14        function sign() {
15               
16                alert("sign()");
17                // Clear log
18                document.getElementById('log').innerHTML = '';
19                // Timestamp
20                log_text("sign() clicked on " + new Date().toUTCString());
21               
22                // Select hash
23                //var hashtype = $("input[name=hash]:checked").val();
24                var hashtype = "SHA-256";
25               
26                // Set backend if asked
27                //var backend =  $("input[name=backend]:checked").val()
28                var backend = "autodetect";
29               
30                // get language
31                var lang = "en";
32                if (!window.hwcrypto.use(backend)) {
33                        log_text("Selecting backend failed.");
34                }
35
36                        var hash = $("#hashvalue").val();
37                        log_text("Signing " + hashtype + ": " + hash);
38                // debug
39                window.hwcrypto.debug().then(function(response) {
40                        log_text("Debug: " + response);
41                        }, function(err) {
42                                log_text("debug() failed: " + err);
43                                return;
44                        });
45                // Sign
46                window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
47                        var cert = response;
48                        log_text("Using certificate:\n" + hexToPem(response.hex));
49                       
50                       
51                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(response) {
52                                log_text("Generated signature:\n" + response.hex.match(/.{1,64}/g).join("\n"));
53                                }, function(err) {
54                                log_text("sign() failed: " + err);
55                                });
56                        }, function(err) {
57                                log_text("getCertificate() failed: " + err);
58                        }
59                       
60                        );
61                }
62
63       
64
65        function logGetCertificate() {
66               
67                alert("logGetCertificate()");
68                // Clear log
69        document.getElementById('log').innerHTML = '';
70                // Timestamp
71                log_text("sign() clicked on " + new Date().toUTCString());
72               
73                // Select hash
74                //var hashtype = $("input[name=hash]:checked").val();
75                var hashtype = "SHA-256";
76               
77                // Set backend if asked
78                //var backend =  $("input[name=backend]:checked").val()
79                var backend = "autodetect";
80               
81                // get language
82                var lang = "en";
83                if (!window.hwcrypto.use(backend)) {
84                log_text("Selecting backend failed.");
85                }
86
87                        var hash = $("#hashvalue").val();
88                        log_text("Signing " + hashtype + ": " + hash);
89                // debug
90                window.hwcrypto.debug().then(function(response) {
91                        log_text("Debug: " + response);
92                }, function(err) {
93                                log_text("debug() failed: " + err);
94                                return;
95                });
96                // Sign
97        window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
98                        var cert = response;
99                        log_text("Using certificate:\n" + hexToPem(response.hex));
100        });
101    }
102       
103       
104        function getCertificate() {
105               
106                alert("getCertificate()");
107                // Clear log
108        document.getElementById('log').innerHTML = '';
109                // Timestamp
110                log_text("sign() clicked on " + new Date().toUTCString());
111               
112                // Set backend if asked
113                //var backend =  $("input[name=backend]:checked").val()
114                var backend = "autodetect";
115               
116                // get language
117                var lang = "en";
118                if (!window.hwcrypto.use(backend)) {
119                log_text("Selecting backend failed.");
120                }
121        window.hwcrypto.getCertificate({lang: lang}).then(function(response) {
122                        var cert = response;
123                        log_text("Using certificate:\n" + hexToPem(response.hex));
124                        return cert;
125        });
126    }
127
Note: See TracBrowser for help on using the repository browser.