Creates new OID in the database

    @param dotted - dotted-decimal representation of new OID
    @param shortname - short name for new OID
    @param longname - long name for new OID

    @returns Oid object corresponding to new OID

    This function should be used with exreme care. Whenever
    possible, it is better to add new OIDs via OpenSSL configuration
    file

    Results of calling this function twice for same OIDor for
    Oid alredy in database are undefined

def create(dotted, shortname, longname):
    """
    Creates new OID in the database

    @param dotted - dotted-decimal representation of new OID
    @param shortname - short name for new OID
    @param longname - long name for new OID

    @returns Oid object corresponding to new OID

    This function should be used with exreme care. Whenever
    possible, it is better to add new OIDs via OpenSSL configuration
    file

    Results of calling this function twice for same OIDor for
    Oid alredy in database are undefined

    """
    if pyver  > 2:
        dotted = dotted.encode('ascii')
        shortname = shortname.encode('utf-8')
        longname = longname.encode('utf-8')
    nid = libcrypto.OBJ_create(dotted, shortname, longname)
    if nid == 0:
        raise LibCryptoError("Problem adding new OID to the  database")
    return Oid(nid)