mirror of
https://github.com/elseif/MikroTikPatch.git
synced 2025-01-23 05:25:00 +03:00
modified: npk.py
This commit is contained in:
parent
e87a19f0d5
commit
75e05fb01f
15
npk.py
15
npk.py
@ -19,7 +19,7 @@ class NpkPartID(IntEnum):
|
||||
SQUASHFS =0x15 # SquashFS
|
||||
NULL_BLOCK =0X16
|
||||
GIT_COMMIT =0x17 # Git commit
|
||||
CHANNEL =0x18 # Release type (e.g. stable, bugfix)
|
||||
CHANNEL =0x18 # Release type (e.g. stable, testing, etc.)
|
||||
HEADER =0x19
|
||||
|
||||
@dataclass
|
||||
@ -256,30 +256,27 @@ if __name__=='__main__':
|
||||
create_option_parser.add_argument('name',type=str,help='NPK name')
|
||||
create_option_parser.add_argument('squashfs',type=str,help='NPK squashfs file')
|
||||
create_option_parser.add_argument('-desc','--description',type=str,help='NPK description')
|
||||
|
||||
args = parser.parse_args()
|
||||
kcdsa_private_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PRIVATE_KEY'])
|
||||
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
||||
kcdsa_public_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PUBLIC_KEY'])
|
||||
eddsa_public_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PUBLIC_KEY'])
|
||||
if args.command =='sign':
|
||||
print(f'Signing {args.input}')
|
||||
npk = NovaPackage.load(args.input)
|
||||
kcdsa_private_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PRIVATE_KEY'])
|
||||
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
||||
npk.sign(kcdsa_private_key,eddsa_private_key)
|
||||
npk.save(args.output)
|
||||
elif args.command == 'verify':
|
||||
npk = NovaPackage.load(args.input)
|
||||
print(f'Verifying {args.input} ',end="")
|
||||
kcdsa_public_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PUBLIC_KEY'])
|
||||
eddsa_public_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PUBLIC_KEY'])
|
||||
if npk.verify(kcdsa_public_key,eddsa_public_key):
|
||||
print('Valid')
|
||||
exit(0)
|
||||
else:
|
||||
print('Invalid')
|
||||
exit(1)
|
||||
exit(-1)
|
||||
elif args.command =='create':
|
||||
print(f'Creating option.npk from {args.input}')
|
||||
kcdsa_private_key = bytes.fromhex(os.environ['CUSTOM_LICENSE_PRIVATE_KEY'])
|
||||
eddsa_private_key = bytes.fromhex(os.environ['CUSTOM_NPK_SIGN_PRIVATE_KEY'])
|
||||
option_npk = NovaPackage.load(args.input)
|
||||
option_npk[NpkPartID.NAME_INFO].data.name = args.name
|
||||
option_npk[NpkPartID.DESCRIPTION].data = args.description.encode() if args.description else args.name.encode()
|
||||
|
Loading…
Reference in New Issue
Block a user