Browse Source

modified: npk.py

pull/7/head
zyb 2 years ago
parent
commit
75e05fb01f
  1. 15
      npk.py

15
npk.py

@ -19,7 +19,7 @@ class NpkPartID(IntEnum):
SQUASHFS =0x15 # SquashFS SQUASHFS =0x15 # SquashFS
NULL_BLOCK =0X16 NULL_BLOCK =0X16
GIT_COMMIT =0x17 # Git commit GIT_COMMIT =0x17 # Git commit
CHANNEL =0x18 # Release type (e.g. stable, bugfix)
CHANNEL =0x18 # Release type (e.g. stable, testing, etc.)
HEADER =0x19 HEADER =0x19
@dataclass @dataclass
@ -256,30 +256,27 @@ if __name__=='__main__':
create_option_parser.add_argument('name',type=str,help='NPK name') 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('squashfs',type=str,help='NPK squashfs file')
create_option_parser.add_argument('-desc','--description',type=str,help='NPK description') create_option_parser.add_argument('-desc','--description',type=str,help='NPK description')
args = parser.parse_args() 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': if args.command =='sign':
print(f'Signing {args.input}') print(f'Signing {args.input}')
npk = NovaPackage.load(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.sign(kcdsa_private_key,eddsa_private_key)
npk.save(args.output) npk.save(args.output)
elif args.command == 'verify': elif args.command == 'verify':
npk = NovaPackage.load(args.input) npk = NovaPackage.load(args.input)
print(f'Verifying {args.input} ',end="") 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): if npk.verify(kcdsa_public_key,eddsa_public_key):
print('Valid') print('Valid')
exit(0) exit(0)
else: else:
print('Invalid') print('Invalid')
exit(1)
exit(-1)
elif args.command =='create': elif args.command =='create':
print(f'Creating option.npk from {args.input}') 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 = NovaPackage.load(args.input)
option_npk[NpkPartID.NAME_INFO].data.name = args.name option_npk[NpkPartID.NAME_INFO].data.name = args.name
option_npk[NpkPartID.DESCRIPTION].data = args.description.encode() if args.description else args.name.encode() option_npk[NpkPartID.DESCRIPTION].data = args.description.encode() if args.description else args.name.encode()

Loading…
Cancel
Save