aboutsummaryrefslogtreecommitdiff
path: root/NitrokeyManagerOTP.cc
diff options
context:
space:
mode:
Diffstat (limited to 'NitrokeyManagerOTP.cc')
-rw-r--r--NitrokeyManagerOTP.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/NitrokeyManagerOTP.cc b/NitrokeyManagerOTP.cc
index 93f2188..42eb3a9 100644
--- a/NitrokeyManagerOTP.cc
+++ b/NitrokeyManagerOTP.cc
@@ -324,4 +324,17 @@ nitrokey::NitrokeyManager::get_OTP_slot_data(const uint8_t slot_number) {
}
nitrokey::proto::stick10::ReadSlot::ResponsePayload nitrokey::NitrokeyManager::get_HOTP_slot_data(const uint8_t slot_number) {
return get_OTP_slot_data(get_internal_slot_number_for_hotp(slot_number));
- } \ No newline at end of file
+ }
+ namespace nitrokey { // package type to auth, auth type
+ // [Authorize,UserAuthorize]
+ template <typename S, typename A, typename T>
+ void NitrokeyManager::authorize_packet(T &package, const char *admin_temporary_password, shared_ptr<Device> device){
+ if (!is_authorization_command_supported()){
+ LOG("Authorization command not supported, skipping", Loglevel::WARNING);
+ }
+ auto auth = get_payload<A>();
+ strcpyT(auth.temporary_password, admin_temporary_password);
+ auth.crc_to_authorize = S::CommandTransaction::getCRC(package);
+ A::CommandTransaction::run(device, auth);
+ }
+ } // namespace nitrokey \ No newline at end of file