1#!/bin/bash 2#********************************************************************************# 3#* *# 4#* Copyright (c) 2005 Instituto Nokia de Tecnologia - INdT - Manaus Brazil *# 5#* *# 6#* This program is free software; you can redistribute it and#or modify *# 7#* it under the terms of the GNU General Public License as published by *# 8#* the Free Software Foundation; either version 2 of the License, or *# 9#* (at your option) any later version. *# 10#* *# 11#* This program is distributed in the hope that it will be useful, *# 12#* but WITHOUT ANY WARRANTY; without even the implied warranty of *# 13#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See *# 14#* the GNU General Public License for more details. *# 15#* *# 16#* You should have received a copy of the GNU General Public License *# 17#* along with this program; if not, write to the Free Software *# 18#* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *# 19#* *# 20#********************************************************************************# 21 22#********************************************************************************# 23#* *# 24#* File: ask_password.sh *# 25#* *# 26#* Description: get the password from userspace. It's called when unlocking *# 27#* the card or assigning a new password to an unlocked card. *# 28#* Return - zero on success *# 29#* - non zero on failure. return value from commands ($RC) *# 30#* Total Tests: 1 *# 31#* *# 32#* Author: Anderson Briglia <anderson.briglia@indt.org.br> *# 33#* Anderson Lizardo <anderson.lizardo@indt.org.br> *# 34#* Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br> *# 35#* *# 36#* *# 37#* *# 38#********************************************************************************# 39 40ask_password() 41{ 42 export TST_TOTAL=1 # Total number of test cases in this file. 43 # Set up LTPTMP (temporary directory used by the tests). 44 LTPTMP=${TMP} # Temporary directory to create files, etc. 45 export TCID="ask_password" # Test case identifier 46 export TST_COUNT=0 # Set up is initialized as test 0 47 RC=0 # Exit values of system commands used 48 49 USER_CONSOLE=/dev/ttyS0 50 { 51 echo "=== Unlock Protected MMC ===" 52 while [ -z "$passwd" ]; do 53 read -s -p "MMC password: " passwd; echo 54 done 55 if ! keyctl instantiate $1 "$passwd" $2 >/dev/null 2>&1; then 56 echo "*** Wrong password! The card was not unlocked." 57 exit 1 58 fi 59 echo "Password accepted." 60 61 exit 0 62 } >$USER_CONSOLE 2>&1 < $USER_CONSOLE 63} 64 65ask_password || exit $RC 66