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: change_password.sh *# 25#* *# 26#* Description: used to change the password from a unlocked card. *# 27#* Total Tests: 1 *# 28#* *# 29#* Author: Anderson Briglia <anderson.briglia@indt.org.br> *# 30#* Anderson Lizardo <anderson.lizardo@indt.org.br> *# 31#* Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br> *# 32#* *# 33#* *# 34#* *# 35#********************************************************************************# 36change_password() 37{ 38 export TST_TOTAL=1 # Total number of test cases in this file. 39 # Set up LTPTMP (temporary directory used by the tests). 40 LTPTMP=${TMP} # Temporary directory to create files, etc. 41 export TCID="change_password" # Test case identifier 42 export TST_COUNT=0 # Set up is initialized as test 0 43 RC=0 # Exit values of system commands used 44 45 echo "=== Change MMC Password ===" 46 keyid=$(keyctl request mmc "mmc:key") 47 if [ -z "$keyid" ]; then 48 echo "*** No protected and unlocked MMC was found. The password cannot be changed." 49 exit 1 50 fi 51 52 while [ -z "$oldpasswd" ]; do 53 read -s -p "Current MMC password: " oldpasswd; echo 54 done 55 56 while [ -z "$newpasswd" ]; do 57 read -s -p "New MMC password: " newpasswd; echo 58 done 59 60 while [ -z "$newpasswd2" ]; do 61 read -s -p "Retype MMC password: " newpasswd2; echo 62 done 63 if [ "$newpasswd" != "$newpasswd2" ]; then 64 echo "*** Passwords do not match." 65 exit 1 66 fi 67 68 if ! keyctl update $keyid "$oldpasswd$newpasswd"; then 69 echo "*** Wrong password!" 70 exit 1 71 fi 72 73 # Clear session keyring 74 # FIXME: It assumes we have only the MMC key there 75 keyctl clear -3 76 77 echo "Password changed." 78} 79 80change_password || exit $RC 81