add web
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import psycopg2
|
||||
from datetime import datetime
|
||||
|
||||
conn_params = {
|
||||
'dbname': 'syntaxdb',
|
||||
'user': 'syntax',
|
||||
'password': 'PjZqyvUWXgmp6g3gMqJPYqZz5YpnhXbCjVsAMdoyuuvmCKNxtE7EQgGWUTFXNtJsoKf73w9hHNFRM6fFqGmH946cbJLNjAjaUQ0z',
|
||||
'host': '127.0.0.1',
|
||||
'port': '5432'
|
||||
}
|
||||
# dat aint my db pass so its calm
|
||||
def modify_database_schema():
|
||||
try:
|
||||
conn = psycopg2.connect(**conn_params)
|
||||
conn.autocommit = False
|
||||
cur = conn.cursor()
|
||||
|
||||
|
||||
print("Adding full_3dcontenthash column to user_thumbnail table...")
|
||||
try:
|
||||
cur.execute("""
|
||||
ALTER TABLE user_thumbnail
|
||||
ADD COLUMN IF NOT EXISTS full_3dcontenthash VARCHAR(512);
|
||||
""")
|
||||
print("Added full_3dcontenthash column")
|
||||
except Exception as e:
|
||||
print(f"Error adding full_3dcontenthash column: {e}")
|
||||
|
||||
conn.commit()
|
||||
print(f"Successfully updated database schema at {datetime.now()}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Migration failed: {e}")
|
||||
conn.rollback()
|
||||
raise
|
||||
finally:
|
||||
if 'cur' in locals(): cur.close()
|
||||
if 'conn' in locals(): conn.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
modify_database_schema()
|
||||
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Generates 3 types of keypairs required by SYNTAX backend
|
||||
|
||||
- 1024 bit RSA key for clients that used rbxsig
|
||||
- 2048 bit RSA key for clients that used rbxsig2 and newer
|
||||
- 2048 bit RSA key for gameserver communication and authentication
|
||||
|
||||
These keys will be saved in the same directory as this script
|
||||
"""
|
||||
|
||||
from cryptography.hazmat.primitives import serialization
|
||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
||||
from cryptography.hazmat.backends import default_backend
|
||||
|
||||
def generate_key( key_size : int, priv_key_name : str, pub_key_name : str ) -> None:
|
||||
"""
|
||||
Generates a private key and saves it to a file
|
||||
|
||||
:param key_size: The size of the key to generate
|
||||
:param key_name: The name of the file to save the key to
|
||||
"""
|
||||
private_key = rsa.generate_private_key(
|
||||
public_exponent=65537,
|
||||
key_size=key_size,
|
||||
backend=default_backend()
|
||||
)
|
||||
|
||||
with open( priv_key_name, "wb" ) as f:
|
||||
f.write(
|
||||
private_key.private_bytes(
|
||||
encoding=serialization.Encoding.PEM,
|
||||
format=serialization.PrivateFormat.TraditionalOpenSSL,
|
||||
encryption_algorithm=serialization.NoEncryption()
|
||||
)
|
||||
)
|
||||
|
||||
with open( pub_key_name, "wb" ) as f:
|
||||
f.write(
|
||||
private_key.public_key().public_bytes(
|
||||
encoding=serialization.Encoding.PEM,
|
||||
format=serialization.PublicFormat.SubjectPublicKeyInfo
|
||||
)
|
||||
)
|
||||
|
||||
generate_key( 1024, "rsa_private_1024.pem", "rsa_public_1024.pub" )
|
||||
generate_key( 2048, "rsa_private_2048.pem", "rsa_public_2048.pub")
|
||||
generate_key( 2048, "rsa_private_gameserver.pem", "rsa_public_gameserver.pub")
|
||||
@@ -0,0 +1,3 @@
|
||||
BgIAAACkAABSU0ExAAQAAAEAAQDT3jDaxbaWj9ADqKDudvallzt9TfxeKxANAJ9nloD58lhuFY3p
|
||||
dYmojbFQ6Ic9AYV1pxR6PJJfVLz1pmhCYWE3ogr6bRr40p74DrsCpEtaad0o1hrgceGOB2YsZtoI
|
||||
96mSFthOa2fUsudE+Duzdp4BbKBchb2jGdvkYHKaSNoexA==
|
||||
@@ -0,0 +1,5 @@
|
||||
BgIAAACkAABSU0ExAAgAAAEAAQANWE5IFwOB2i8TqOaLlFoeDEN4r7QlJqRssuspiSqJP6CJeNaa
|
||||
9YMOidS2wYhL6h/iAEh2AbEpgwEZFjoyDYIieLSiOeChqcUXYxhCYaz6UMMVTXQ/bo9FE1J4pS0v
|
||||
IIGFTk3R3gGJs7AMgZJnJOVd5NmYfWNHAFgEFSSYZtKDSd27jyGF//YCDsZdlnRi9V+hlDv4MFrR
|
||||
zhKQVyDXfsazCElG94dYBFfYLB1CfvVOxT1RJdWwI1fvpRa5kDI7/IOKaRTs3dr+pOAaPlW94hRf
|
||||
QCbssImK6IXBtqg83XQVjsYRW0EEGPdYvbs0auhqiHZ/qT18S+lmuu9snhJmchfY
|
||||
@@ -0,0 +1,6 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEHtpImnJg5NsZo72FXKBsAZ52
|
||||
szv4ROey1GdrTtgWkqn3CNpmLGYHjuFx4BrWKN1pWkukArsO+J7S+Bpt+gqiN2Fh
|
||||
Qmim9bxUX5I8ehSndYUBPYfoULGNqIl16Y0Vbljy+YCWZ58ADRArXvxNfTuXpfZ2
|
||||
7qCoA9CPlrbF2jDe0wIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,9 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2BdyZhKebO+6ZulLfD2p
|
||||
f3aIauhqNLu9WPcYBEFbEcaOFXTdPKi2wYXoiomw7CZAXxTivVU+GuCk/trd7BRp
|
||||
ioP8OzKQuRal71cjsNUlUT3FTvV+Qh0s2FcEWIf3RkkIs8Z+1yBXkBLO0Vow+DuU
|
||||
oV/1YnSWXcYOAvb/hSGPu91Jg9JmmCQVBFgAR2N9mNnkXeUkZ5KBDLCziQHe0U1O
|
||||
hYEgLy2leFITRY9uP3RNFcNQ+qxhQhhjF8WpoeA5orR4IoINMjoWGQGDKbEBdkgA
|
||||
4h/qS4jBttSJDoP1mtZ4iaA/iSqJKeuybKQmJbSveEMMHlqUi+aoEy/agQMXSE5Y
|
||||
DQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
@@ -0,0 +1,9 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx70Eh6+OcKTJAFxVi6WH
|
||||
A/JzowQod710a4sPd6zAsLwkPBGnTDvdDHuLQjjXicYLyhpHriUu2Z/PNZo3l4m5
|
||||
Xz+h4yafQBIB/qXIkKu+31p0D13XQHpX28TvRPKZKj1uM+MikYcgjIfPnZKHORAz
|
||||
fy+FA13T7swSHY/9ysvQM9CGnk/hr74EZTYWUY1bhHgwWCWLsRoh29hj0h+m55Kw
|
||||
2egBlWmi6uiB4TX00Djd+FEL3HJI1ztqLN/xNQ+M4NigZjbr3rGZXhLNcv57hVVo
|
||||
crHDrrd2MoagwhRK7LOWCnH51mVgZdQe1Q6CKTn8hhPwiGznScnkquiDdGmy3bcW
|
||||
kQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
Reference in New Issue
Block a user