예제 #1
0
def generate_rsa_signature(http_request,
                           consumer_key,
                           rsa_key,
                           timestamp,
                           nonce,
                           version,
                           next='oob',
                           token=None,
                           token_secret=None,
                           verifier=None):
    import base64
    try:
        from tlslite.utils import keyfactory
    except ImportError:
        from gdata.tlslite.utils import keyfactory
    base_string = build_oauth_base_string(http_request,
                                          consumer_key,
                                          nonce,
                                          RSA_SHA1,
                                          timestamp,
                                          version,
                                          next,
                                          token,
                                          verifier=verifier)
    private_key = keyfactory.parsePrivateKey(rsa_key)
    # Sign using the key
    signed = private_key.hashAndSign(base_string)
    return base64.b64encode(signed)
예제 #2
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)
        parsed_key = keyfactory.parsePrivateKey(self.private_key)
        signature = parsed_key.hashAndSign(bytes(raw, "utf-8"))

        return base64.b64encode(signature)
예제 #3
0
def generate_rsa_signature(
    http_request,
    consumer_key,
    rsa_key,
    timestamp,
    nonce,
    version,
    next="oob",
    token=None,
    token_secret=None,
    verifier=None,
):
    import base64

    try:
        from tlslite.utils import keyfactory
    except ImportError:
        from gdata.tlslite.utils import keyfactory
    base_string = build_oauth_base_string(
        http_request, consumer_key, nonce, RSA_SHA1, timestamp, version, next, token, verifier=verifier
    )
    private_key = keyfactory.parsePrivateKey(rsa_key)
    # Sign using the key
    signed = private_key.hashAndSign(base_string)
    # Python2.3 does not have base64.b64encode.
    if hasattr(base64, "b64encode"):
        return base64.b64encode(signed)
    else:
        return base64.encodestring(signed).replace("\n", "")
예제 #4
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        privatekey = keyfactory.parsePrivateKey(config.JIRA_OAUTH_PEM)
        signature = privatekey.hashAndSign(raw.encode('utf-8'))

        return base64.b64encode(signature)
예제 #5
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        privateKeyString = self.key_cert.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #6
0
 def sign(self, oauth_request, consumer, token):
     """Builds the base signature string."""
     base_string = self.build_signature_base_string(oauth_request, consumer, token)
     # Fetch the private key cert based on the request
     cert = self._fetch_private_cert(oauth_request)
     # Pull the private key from the certificate
     privatekey = keyfactory.parsePrivateKey(cert)
     # Sign using the key
     signed = privatekey.hashAndSign(base_string)
     return binascii.b2a_base64(signed)[:-1]
예제 #7
0
def generate_signature(data, rsa_key):
    """Signs the data string for a secure AuthSub request."""
    import base64
    try:
        from tlslite.utils import keyfactory
    except ImportError:
        from gdata.tlslite.utils import keyfactory
    private_key = keyfactory.parsePrivateKey(rsa_key)
    signed = private_key.hashAndSign(data)
    return base64.b64encode(signed)
예제 #8
0
파일: gauth.py 프로젝트: 1310701102/sl4a
def generate_signature(data, rsa_key):
  """Signs the data string for a secure AuthSub request."""
  import base64
  try:
    from tlslite.utils import keyfactory
  except ImportError:
    from gdata.tlslite.utils import keyfactory
  private_key = keyfactory.parsePrivateKey(rsa_key)
  signed = private_key.hashAndSign(data)
  return base64.b64encode(signed)
예제 #9
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        privateKeyString = self.key_cert.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #10
0
    def sign(self, request, consumer, token):
        key, raw = self.signing_base(request, consumer, token)

        with open('./privkey.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #11
0
        def sign(self, request: oauth2.Request, consumer: oauth2.Consumer,
                 token: oauth2.Token) -> bytes:
            """Builds the base signature string."""
            key, raw = self.signing_base(request=request,
                                         consumer=consumer,
                                         token=token)
            private_key = keyfactory.parsePrivateKey(self.rsa_private_key)
            # noinspection PyArgumentList
            signature = private_key.hashAndSign(bytes=bytearray(raw, 'utf8'))

            return base64.b64encode(signature)
예제 #12
0
def _pure_python_rsa_sha1(base_string, rsa_private_key):
    """
    An alternative, pure-python RSA-SHA1 signing method, using
    the tlslite library.
    """
    import base64
    from tlslite.utils import keyfactory

    private_key = keyfactory.parsePrivateKey(rsa_private_key)
    signature = private_key.hashAndSign(base_string.encode('ascii'))

    return unicode(base64.b64encode(signature))
예제 #13
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        with open(os.getenv('PRIVATE_PEM_KEY', 'pem_key_not_set'), 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #14
0
    def sign(self, request, consumer, token):
        '''Builds the base signature string.'''
        key, raw = self.signing_base(request, consumer, token)

        with open(join(home, 'jira.pem'), 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #15
0
def _pure_python_rsa_sha1(base_string, rsa_private_key):
    """
    An alternative, pure-python RSA-SHA1 signing method, using
    the tlslite library.
    """
    import base64
    from tlslite.utils import keyfactory

    private_key = keyfactory.parsePrivateKey(rsa_private_key)
    signature = private_key.hashAndSign(base_string.encode('ascii'))

    return unicode(base64.b64encode(signature))
예제 #16
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        module_dir = os.path.dirname(__file__)  # get current directory
        with open(module_dir + '/rsa.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()
        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        raw = str.encode(raw)
        signature = privatekey.hashAndSign(raw)
        return base64.b64encode(signature)
예제 #17
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        with open('/Users/mmuunn/Documents/Works/jira/jira-python-restful/oauth_key/mykey.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #18
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        with open('oauth_key/mykey.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(bytes(raw, 'utf-8'))

        return base64.b64encode(signature)
예제 #19
0
파일: app.py 프로젝트: o0khoiclub0o/thimbot
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        with open('../rsa.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #20
0
def generate_signature(data, rsa_key):
  """Signs the data string for a secure AuthSub request."""
  import base64
  try:
    from tlslite.utils import keyfactory
  except ImportError:
    from gdata.tlslite.utils import keyfactory
  private_key = keyfactory.parsePrivateKey(rsa_key)
  signed = private_key.hashAndSign(data)
  # Python2.3 and lower does not have the base64.b64encode function.
  if hasattr(base64, 'b64encode'):
    return base64.b64encode(signed)
  else:
    return base64.encodebytes(signed).replace('\n', '')
예제 #21
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        # Load RSA Private Key
        with open( 'jira.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)

        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #22
0
파일: gauth.py 프로젝트: ChrisX34/stuff
def generate_signature(data, rsa_key):
  """Signs the data string for a secure AuthSub request."""
  import base64
  try:
    from tlslite.utils import keyfactory
  except ImportError:
    from gdata.tlslite.utils import keyfactory
  private_key = keyfactory.parsePrivateKey(rsa_key)
  signed = private_key.hashAndSign(data)
  # Python2.3 and lower does not have the base64.b64encode function.
  if hasattr(base64, 'b64encode'):
    return base64.b64encode(signed)
  else:
    return base64.encodestring(signed).replace('\n', '')
예제 #23
0
파일: gauth.py 프로젝트: 1310701102/sl4a
def generate_rsa_signature(http_request, consumer_key, rsa_key,
                           timestamp, nonce, version, next='oob',
                           token=None, token_secret=None, verifier=None):
  import base64
  try:
    from tlslite.utils import keyfactory
  except ImportError:
    from gdata.tlslite.utils import keyfactory
  base_string = build_oauth_base_string(
      http_request, consumer_key, nonce, RSA_SHA1, timestamp, version,
      next, token, verifier=verifier)
  private_key = keyfactory.parsePrivateKey(rsa_key)
  # Sign using the key
  signed = private_key.hashAndSign(base_string)
  return base64.b64encode(signed)
예제 #24
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        with open(
            (Path(__file__).parent / self.private_key_filename).resolve(),
                'r') as f:
            data = f.read()

        private_key_string = data.strip()

        private_key = keyfactory.parsePrivateKey(private_key_string)
        signature = private_key.hashAndSign(bytes(raw, encoding='utf8'))

        return base64.b64encode(signature)
예제 #25
0
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        env = Environment.Environment()
        absolute_path = env.get_path_private_key()
        with open(absolute_path, 'r') as f:
            data = f.read()
        private_key_string = data.strip()

        private_key = keyfactory.parsePrivateKey(private_key_string)
        signature = private_key.hashAndSign(raw)
        base_signature = base64.b64encode(signature)

        return base_signature
예제 #26
0
    def sign(self, request, consumer, token):
        """
        Build signature string.
        :param request: http request
        :param consumer: oauth consumer
        :param token: oauth token
        :return: signed signature b64
        """
        key, raw = self.signing_base(request, consumer, token)

        private_key = read_key_cert()
        privatekey = keyfactory.parsePrivateKey(private_key)
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #27
0
def oauth_sign(method, url, params, data, private_key_path):
    """Returns oauth_signature for a given request"""

    # Use oauth2 Request() to normalize the payload
    request = oauth2.Request(method, url, params, data)
    raw = '&'.join([
        oauth2.escape(request.method),
        oauth2.escape(request.normalized_url),
        oauth2.escape(request.get_normalized_parameters()),
    ])

    # Load the private keyfile
    with open(private_key_path, 'r') as f:
        privatekey = keyfactory.parsePrivateKey(f.read())

    # Calculate signature and return it as a b64-encoded string
    return base64.b64encode(privatekey.hashAndSign(raw))
예제 #28
0
    def build_signature(self, oauth_request, consumer, token):
        key, base_string = self.build_signature_base_string(
            oauth_request, consumer, token)

        # Fetch the private key cert based on the request
        cert = self._fetch_private_cert(oauth_request)

        # Pull the private key from the certificate
        privatekey = keyfactory.parsePrivateKey(cert)

        # Convert base_string to bytes
        # base_string_bytes = cryptomath.createByteArraySequence(base_string)

        # Sign using the key
        signed = privatekey.hashAndSign(base_string)

        return binascii.b2a_base64(signed)[:-1]
예제 #29
0
파일: rsa.py 프로젝트: AdamBenoit/oauth
  def build_signature(self, oauth_request, consumer, token):
    key, base_string = self.build_signature_base_string(oauth_request,
                                                        consumer,
                                                        token)

    # Fetch the private key cert based on the request
    cert = self._fetch_private_cert(oauth_request)

    # Pull the private key from the certificate
    privatekey = keyfactory.parsePrivateKey(cert)
    
    # Convert base_string to bytes
    #base_string_bytes = cryptomath.createByteArraySequence(base_string)
    
    # Sign using the key
    signed = privatekey.hashAndSign(base_string)
  
    return base64.b64encode(signed)
    def sign(self, request, consumer, token):
        """Builds the base signature string."""
        key, raw = self.signing_base(request, consumer, token)

        # Load RSA Private Key
        with open(Path.home() / '.oauthconfig/oauth.pem', 'r') as f:
            data = f.read()
        privateKeyString = data.strip()

        privatekey = keyfactory.parsePrivateKey(privateKeyString)
        '''
            We were getting errors on encoding, so added explicitly "utf8" encoding in rsakey.py
            In function hashAndSign(...),
                *changed line* ->   hashBytes = SHA1(bytearray(bytes))
                to ->               hashBytes = SHA1(bytearray(bytes, "utf8"))
        '''
        signature = privatekey.hashAndSign(raw)

        return base64.b64encode(signature)
예제 #31
0
 def verify(self, base_string, signature):
     decoded_sig = base64.b64decode(signature)
     public_key = keyfactory.parsePrivateKey(self.public_cert)
     return publickey.hashAndVerify(decoded_sig, base_string)
예제 #32
0
# Signing a string with RSA private key on Google App Engine Python SDK
from tlslite.utils import keyfactory
private_key = keyfactory.parsePrivateKey(rsa_key)
signed = private_key.hashAndSign(data)
예제 #33
0
# Signing a string with RSA private key on Google App Engine Python SDK
from tlslite.utils import keyfactory

private_key = keyfactory.parsePrivateKey(rsa_key)
signed = private_key.hashAndSign(data)
예제 #34
0
 def signature(self):
     privatekey = keyfactory.parsePrivateKey(self.private_cert)
     signature = privatekey.hashAndSign(self.base_string)
     return base64.b64encode(signature)