def generate_root(bits=2048, expires=24*60*60, keyid=None, priv_path=None,
                  pub_path=None):
    """For generating test root ceritifcates"""

    if keyid is None:
        keyid = ISSUER_URL
    if priv_path is None:
        priv_path = ROOT_PRIV_PATH
    if pub_path is None:
        pub_path = ROOT_PUB_PATH

    def NoOp(): pass
    rsaObj = M2Crypto.RSA.gen_key(bits, 0x10001, NoOp)

    # Create the JWK from the pubkey
    juke = dict(jwk=[ dict(alg="RSA", use='sig', kid=keyid,
                           exp=jwt.base64url_encode(rsaObj.pub()[0][4:]),
                           mod=jwt.base64url_encode(rsaObj.pub()[1][4:])) ])

    with open(priv_path, 'w') as f:
        f.write(rsaObj.as_pem(None))
    with open(pub_path, 'w') as f:
        f.write(json.dumps(juke))

    return True
Esempio n. 2
0
def generate_root(bits=2048,
                  expires=24 * 60 * 60,
                  keyid=None,
                  priv_path=None,
                  pub_path=None):
    """For generating test root ceritifcates"""

    if keyid is None:
        keyid = ISSUER_URL
    if priv_path is None:
        priv_path = ROOT_PRIV_PATH
    if pub_path is None:
        pub_path = ROOT_PUB_PATH

    def NoOp():
        pass

    rsaObj = M2Crypto.RSA.gen_key(bits, 0x10001, NoOp)

    # Create the JWK from the pubkey
    juke = dict(jwk=[
        dict(alg="RSA",
             use='sig',
             kid=keyid,
             exp=jwt.base64url_encode(rsaObj.pub()[0][4:]),
             mod=jwt.base64url_encode(rsaObj.pub()[1][4:]))
    ])

    with open(priv_path, 'w') as f:
        f.write(rsaObj.as_pem(None))
    with open(pub_path, 'w') as f:
        f.write(json.dumps(juke))

    return True
def jwkify(pub, keyid):
    if isinstance(pub, M2Crypto.RSA.RSA) \
            or isinstance(pub, M2Crypto.RSA.RSA_pub):
        pub = pub.pub()
    elif type(pub) != tuple:
        raise ValueError("jwkify expects an RSA object or a tuple")

    return dict(jwk=[ { "alg": "RSA",
                        "kid": keyid,
                        "exp": jwt.base64url_encode(pub[0][4:]),
                        "mod": jwt.base64url_encode(pub[1][4:]) } ])
def jwkify(pub, keyid):
    if isinstance(pub, M2Crypto.RSA.RSA) \
            or isinstance(pub, M2Crypto.RSA.RSA_pub):
        pub = pub.pub()
    elif type(pub) != tuple:
        raise ValueError("jwkify expects an RSA object or a tuple")

    return dict(jwk=[{
        "alg": "RSA",
        "kid": keyid,
        "exp": jwt.base64url_encode(pub[0][4:]),
        "mod": jwt.base64url_encode(pub[1][4:])
    }])