Subversion Repositories vnag

Rev

Rev 31 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31 Rev 48
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
A==
23
g==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 
28
 
29
      VNag - Nagios Framework for PHP                  (C) 2014-2021
29
      VNag - Nagios Framework for PHP                  (C) 2014-2022
30
      __     ___      _____ _     _       _     ____         __ _
30
      __     ___      _____ _     _       _     ____         __ _
31
      \ \   / (_) __ |_   _| |__ (_)_ __ | | __/ ___|  ___  / _| |_
31
      \ \   / (_) __ |_   _| |__ (_)_ __ | | __/ ___|  ___  / _| |_
32
       \ \ / /| |/ _` || | | '_ \| | '_ \| |/ /\___ \ / _ \| |_| __|
32
       \ \ / /| |/ _` || | | '_ \| | '_ \| |/ /\___ \ / _ \| |_| __|
33
        \ V / | | (_| || | | | | | | | | |   <  ___) | (_) |  _| |_
33
        \ V / | | (_| || | | | | | | | | |   <  ___) | (_) |  _| |_
34
         \_/  |_|\__,_||_| |_| |_|_|_| |_|_|\_\|____/ \___/|_|  \__|
34
         \_/  |_|\__,_||_| |_| |_|_|_| |_|_|\_\|____/ \___/|_|  \__|
35
 
35
 
36
      Developed by Daniel Marschall             www.viathinksoft.com
36
      Developed by Daniel Marschall             www.viathinksoft.com
37
      Licensed under the terms of the Apache 2.0 license
37
      Licensed under the terms of the Apache 2.0 license
38
      Revision 2021-06-24
38
      Revision 2022-04-09
39
 
39
 
40
*/
40
*/
41
 
41
 
42
/****************************************************************************************************
42
/****************************************************************************************************
43
 
43
 
Line 345... Line 345...
345
        // Returns true for '' or null. Does not return true for value 0 or '0' (like empty() does)
345
        // Returns true for '' or null. Does not return true for value 0 or '0' (like empty() does)
346
        return trim($x) == '';
346
        return trim($x) == '';
347
}
347
}
348
 
348
 
349
abstract class VNag {
349
abstract class VNag {
350
        /*public*/ const VNAG_VERSION = '2021-06-24';
350
        /*public*/ const VNAG_VERSION = '2022-04-09';
351
 
351
 
352
        // Status 0..3 for STATUSMODEL_SERVICE (the default status model):
352
        // Status 0..3 for STATUSMODEL_SERVICE (the default status model):
353
        # The guideline states: "Higher-level errors (such as name resolution errors, socket timeouts, etc) are outside of the control of plugins and should generally NOT be reported as UNKNOWN states."
353
        # The guideline states: "Higher-level errors (such as name resolution errors, socket timeouts, etc) are outside of the control of plugins and should generally NOT be reported as UNKNOWN states."
354
        # We choose 4 as exitcode. The plugin developer is free to return any other status.
354
        # We choose 4 as exitcode. The plugin developer is free to return any other status.
355
        /*public*/ const STATUS_OK       = 0;
355
        /*public*/ const STATUS_OK       = 0;
Line 1156... Line 1156...
1156
                        }
1156
                        }
1157
 
1157
 
1158
                        $signature = '';
1158
                        $signature = '';
1159
                        $sign_algo = is_null($this->sign_algo) ? OPENSSL_ALGO_SHA256 : $this->sign_algo;
1159
                        $sign_algo = is_null($this->sign_algo) ? OPENSSL_ALGO_SHA256 : $this->sign_algo;
1160
                        if (@openssl_sign($payload, $signature, $pkeyid, $sign_algo)) {
1160
                        if (@openssl_sign($payload, $signature, $pkeyid, $sign_algo)) {
-
 
1161
                                if (version_compare(PHP_VERSION, '8.0.0') < 0) {
1161
                                openssl_free_key($pkeyid);
1162
                                        openssl_free_key($pkeyid);
-
 
1163
                                }
1162
 
1164
 
1163
                                $dataset['signature'] = base64_encode($signature);
1165
                                $dataset['signature'] = base64_encode($signature);
1164
                        } else {
1166
                        } else {
1165
                                throw new VNagPrivateKeyException(sprintf(VNagLang::$signature_failed));
1167
                                throw new VNagPrivateKeyException(sprintf(VNagLang::$signature_failed));
1166
                        }
1168
                        }