'Constructor for SignedJwtAssertionCredentials.
Args:
service_account_name: string, id for account, usually an email address.
private_key: string, private key in PKCS12 or PEM format.
scope: string or iterable of strings, scope(s) of the credentials being
requested.
private_key_password: string, password for private_key, unused if
private_key is in PEM format.
user_agent: string, HTTP User-Agent to provide for this application.
token_uri: string, URI for token endpoint. For convenience
defaults to Google\'s endpoints but any OAuth 2.0 provider can be used.
revoke_uri: string, URI for revoke endpoint.
kwargs: kwargs, Additional parameters to add to the JWT token, for
example sub=joe@xample.org.
Raises:
CryptoUnavailableError if no crypto library is available.'

@util.positional(4)
def __init__(self, service_account_name, private_key, scope, private_key_password='notasecret', user_agent=None, token_uri=GOOGLE_TOKEN_URI, revoke_uri=GOOGLE_REVOKE_URI, **kwargs):

    _RequireCryptoOrDie()
    super(SignedJwtAssertionCredentials, self).__init__(None, user_agent=user_agent, token_uri=token_uri, revoke_uri=revoke_uri)
    self.scope = util.scopes_to_string(scope)
    self.private_key = base64.b64encode(private_key)
    if isinstance(self.private_key, six.text_type):
        self.private_key = self.private_key.encode('utf-8')
    self.private_key_password = private_key_password
    self.service_account_name = service_account_name
    self.kwargs = kwargs
