Recuperando shadows e alterando o estado de uma partição import { hsm } from "@dinamonetworks/hsm-dinamo" ; // Define os parâmetros de conexão com o HSM const options = { host: "127.0.0.1" , authUsernamePassword: { username: "master" , password: "12345678" , }, }; // Define o usuário para criar e usar nos métodos const USER_ID = "myUserTest" ; const USER_PASSWORD = "12345678" ; async function main () { let conn ; try { // Conecta ao HSM conn = await hsm . connect ( options ); // Cria o usuário try { const permissions = [ hsm . enums . USER_PERMISSIONS . NS_AUTHORIZATION , hsm . enums . USER_PERMISSIONS . SYS_OPERATOR , ]; const created = await conn . user . create ( USER_ID , USER_PASSWORD , permissions ); if ( created ) { console . log ( `User " ${ USER_ID } " created successfully` ); } else { console . log ( `Failed to create user " ${ USER_ID } "` ); } } catch ( error ) { console . error ( "Error creating user:" , error . message ); throw error ; } await conn . disconnect (); const optNsAuth = { host: "127.0.0.1" , authUsernamePassword: { username: USER_ID , password: USER_PASSWORD , }, }; conn = await hsm . connect ( optNsAuth ); // PINs dos smartcards a serem inseridos const pin1 = "12345678" ; // Substitua pelo PIN real do primeiro smartcard const pin2 = "12345678" ; // Substitua pelo PIN real do segundo smartcard // Obtém shadows dos smartcards console . log ( "Insert the first smartcard..." ); let shadow1 ; try { shadow1 = await conn . management . getShadow ( pin1 ); console . log ( `Shadow retrieved: ${ shadow1 } ` ); } catch ( error ) { console . error ( "Error retrieving shadow:" , error . message ); throw error ; } console . log ( "Please replace the smartcard with the second one..." ); // Aguarda a troca do smartcard await new Promise (( resolve ) => setTimeout ( resolve , 10000 )); // Espera de 10 segundos console . log ( "Insert the second smartcard..." ); let shadow2 ; try { shadow2 = await conn . management . getShadow ( pin2 ); console . log ( `Shadow retrieved: ${ shadow2 } ` ); } catch ( error ) { console . error ( "Error retrieving shadow:" , error . message ); throw error ; } // Adiciona as shadows em um array de shadows const shadows = [ shadow1 , shadow2 ]; // Define o estado NS Auth try { const aclMask = hsm . enums . ACL_MASK . NOP ; const state = hsm . enums . NSAUTH_STATE . ASSOCIATED ; const result = await conn . management . setNsAuthState ( aclMask , state , shadows ); console . log ( `Set NS Auth State result: ${ result } ` ); if ( result ) { console . log ( "NS Auth State set successfully." ); } else { console . log ( "Failed to set NS Auth State." ); } } catch ( error ) { console . error ( "Error setting NS Auth State:" , error . message ); throw error ; } } catch ( error ) { console . error ( "An error occurred:" , error . message ); } finally { if ( conn ) { // Desconecta do HSM await conn . disconnect (); } } } // Executa a função principal main ();
Copy