mirror of
https://github.com/aleho/onlyoffice-ce-docker-license.git
synced 2025-12-30 12:44:05 +01:00
Add Dockerfile and components
This commit is contained in:
87
license.py
Normal file
87
license.py
Normal file
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from Crypto.Hash import SHA, SHA256
|
||||
from Crypto.Signature import PKCS1_v1_5
|
||||
from Crypto.PublicKey import RSA
|
||||
from shutil import copyfile
|
||||
import json
|
||||
import codecs
|
||||
|
||||
|
||||
|
||||
def gen_keys():
|
||||
privKey = RSA.generate(1024)
|
||||
publKey = privKey.publickey().exportKey('PEM')
|
||||
|
||||
f = open("/var/www/onlyoffice/license_key.pub", "w+")
|
||||
f.write(publKey.decode('utf-8'))
|
||||
f.close()
|
||||
|
||||
return publKey, privKey
|
||||
|
||||
|
||||
|
||||
def write_license(publKey, privKey):
|
||||
license = {
|
||||
"branding": False,
|
||||
"connections": 9999,
|
||||
"customization": False,
|
||||
"end_date": "2099-01-01T23:59:59.000Z",
|
||||
"light": "False",
|
||||
"mode": "",
|
||||
"portal_count": "0",
|
||||
"process": 2,
|
||||
"ssbranding": False,
|
||||
"test": "False",
|
||||
"trial": "False",
|
||||
"user_quota": "0",
|
||||
"users_count": 9999,
|
||||
"users_expire": 99999,
|
||||
"whiteLabel": False,
|
||||
"customer_id": "customerID",
|
||||
"start_date": "2020-01-01T00:00:00.000Z",
|
||||
"users": [],
|
||||
"version": 2
|
||||
}
|
||||
|
||||
jsonData = codecs.encode(json.dumps(license, separators=(',', ':')), encoding='utf-8')
|
||||
|
||||
digest = SHA.new(jsonData)
|
||||
signer = PKCS1_v1_5.new(privKey)
|
||||
signature = signer.sign(digest)
|
||||
finalSignature = signature.hex()
|
||||
|
||||
license['signature'] = finalSignature
|
||||
|
||||
f = open("/var/www/onlyoffice/license.lic", "w+")
|
||||
f.write(json.dumps(license))
|
||||
f.close
|
||||
|
||||
|
||||
|
||||
def patch_files():
|
||||
basePath = "/var/www/onlyoffice/documentserver/server/"
|
||||
files = ["DocService/docservice", "FileConverter/converter"]
|
||||
|
||||
for file in files:
|
||||
f = open(basePath + file, 'rb')
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
replacedData = data.replace(b"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRhGF7X4A0ZVlEg594WmODVVUI\niiPQs04aLmvfg8SborHss5gQXu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicg\nXwi80H1aLPf6lEPPLvN29EhQNjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6\nPFQbP9/rByxdxEoAIQIDAQAB\n-----END PUBLIC KEY-----", bytes(publKey))
|
||||
|
||||
f = open(basePath + file, 'wb')
|
||||
f.write(replacedData)
|
||||
f.close()
|
||||
|
||||
|
||||
|
||||
|
||||
print("Generating and exporting key pair...")
|
||||
publKey, privKey = gen_keys()
|
||||
|
||||
print("Writing license file...")
|
||||
write_license(publKey, privKey)
|
||||
|
||||
print("Patching document server and converter...")
|
||||
patch_files()
|
||||
Reference in New Issue
Block a user