C:\xampp\htdocs\landing\wp-content\plugins\updraftplus\vendor\eher\oauth\src\Eher\OAuth\RsaSha1.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php

namespace Eher\OAuth\SignatureMethod;

/**
 * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
 * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
 * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
 * verified way to the Service Provider, in a manner which is beyond the scope of this
 * specification.
 *   - Chapter 9.3 ("RSA-SHA1")
 */
abstract class RsaSha1 extends SignatureMethod {
  public function 
get_name() {
    return 
"RSA-SHA1";
  }

  
// Up to the SP to implement this lookup of keys. Possible ideas are:
  // (1) do a lookup in a table of trusted certs keyed off of consumer
  // (2) fetch via http using a url provided by the requester
  // (3) some sort of specific discovery code based on request
  //
  // Either way should return a string representation of the certificate
  
protected abstract function fetch_public_cert(&$request);

  
// Up to the SP to implement this lookup of keys. Possible ideas are:
  // (1) do a lookup in a table of trusted certs keyed off of consumer
  //
  // Either way should return a string representation of the certificate
  
protected abstract function fetch_private_cert(&$request);

  public function 
build_signature($request$consumer$token) {
    
$base_string $request->get_signature_base_string();
    
$request->base_string $base_string;

    
// Fetch the private key cert based on the request
    
$cert $this->fetch_private_cert($request);

    
// Pull the private key ID from the certificate
    
$privatekeyid openssl_get_privatekey($cert);

    
// Sign using the key
    
$ok openssl_sign($base_string$signature$privatekeyid);

    
// Release the key resource
    
openssl_free_key($privatekeyid);

    return 
base64_encode($signature);
  }

  public function 
check_signature($request$consumer$token$signature) {
    
$decoded_sig base64_decode($signature);

    
$base_string $request->get_signature_base_string();

    
// Fetch the public key cert based on the request
    
$cert $this->fetch_public_cert($request);

    
// Pull the public key ID from the certificate
    
$publickeyid openssl_get_publickey($cert);

    
// Check the computed signature against the one passed in the query
    
$ok openssl_verify($base_string$decoded_sig$publickeyid);

    
// Release the key resource
    
openssl_free_key($publickeyid);

    return 
$ok == 1;
  }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586