| Index: emcore/trunk/tools/libipodcrypto.py | 
| — | — | @@ -144,74 +144,42 @@ | 
| 145 | 145 | emcore.free(addr) | 
| 146 | 146 | return data | 
| 147 | 147 |  | 
|  | 148 | +def fileoperation(infilepath, outfilepath, function): | 
|  | 149 | +    with open(infilepath, "rb") as infile: | 
|  | 150 | +        infiledata = infile.read() | 
|  | 151 | + | 
|  | 152 | +    try: | 
|  | 153 | +        outfiledata = function(infiledata) | 
|  | 154 | +    except: | 
|  | 155 | +        os.remove(outfilepath) | 
|  | 156 | +        raise | 
|  | 157 | + | 
|  | 158 | +    with open(outfilepath, "wb") as outfile: | 
|  | 159 | +        outfile.write(outfiledata) | 
| 148 | 160 |  | 
| 149 | 161 | def s5l8701cryptdfufile(infile, outfile): | 
| 150 |  | -    infile = open(infile, "rb")
 | 
| 151 |  | -    outfile = open(outfile, "wb")
 | 
| 152 |  | -    outfile.write(s5l8701cryptdfu(infile.read()))
 | 
| 153 |  | -    infile.close()
 | 
| 154 |  | -    outfile.close()
 | 
|  | 162 | +    fileoperation(infile, outfile, s5l8701cryptdfu) | 
| 155 | 163 |  | 
| 156 |  | -
 | 
| 157 | 164 | def s5l8701decryptdfufile(infile, outfile): | 
| 158 |  | -    infile = open(infile, "rb")
 | 
| 159 |  | -    outfile = open(outfile, "wb")
 | 
| 160 |  | -    outfile.write(s5l8701decryptdfu(infile.read()))
 | 
| 161 |  | -    infile.close()
 | 
| 162 |  | -    outfile.close()
 | 
|  | 165 | +    fileoperation(infile, outfile, s5l8701decryptdfu) | 
| 163 | 166 |  | 
| 164 |  | -
 | 
| 165 | 167 | def s5l8701cryptfirmwarefile(infile, outfile): | 
| 166 |  | -    infile = open(infile, "rb")
 | 
| 167 |  | -    outfile = open(outfile, "wb")
 | 
| 168 |  | -    outfile.write(s5l8701cryptfirmware(infile.read()))
 | 
| 169 |  | -    infile.close()
 | 
| 170 |  | -    outfile.close()
 | 
|  | 168 | +    fileoperation(infile, outfile, s5l8701cryptfirmware) | 
| 171 | 169 |  | 
| 172 |  | -
 | 
| 173 | 170 | def s5l8701decryptfirmwarefile(infile, outfile): | 
| 174 |  | -    infile = open(infile, "rb")
 | 
| 175 |  | -    outfile = open(outfile, "wb")
 | 
| 176 |  | -    outfile.write(s5l8701decryptfirmware(infile.read()))
 | 
| 177 |  | -    infile.close()
 | 
| 178 |  | -    outfile.close()
 | 
|  | 171 | +    fileoperation(infile, outfile, s5l8701decryptfirmware) | 
| 179 | 172 |  | 
| 180 |  | -
 | 
| 181 | 173 | def s5l8702cryptnorfile(infile, outfile): | 
| 182 |  | -    infile = open(infile, "rb")
 | 
| 183 |  | -    outfile = open(outfile, "wb")
 | 
| 184 |  | -    outfile.write(s5l8702cryptnor(infile.read()))
 | 
| 185 |  | -    infile.close()
 | 
| 186 |  | -    outfile.close()
 | 
|  | 174 | +    fileoperation(infile, outfile, s5l8702cryptnor) | 
| 187 | 175 |  | 
| 188 |  | -
 | 
| 189 | 176 | def s5l8702decryptnorfile(infile, outfile): | 
| 190 |  | -    infile = open(infile, "rb")
 | 
| 191 |  | -    outfile = open(outfile, "wb")
 | 
| 192 |  | -    outfile.write(s5l8702decryptnor(infile.read()))
 | 
| 193 |  | -    infile.close()
 | 
| 194 |  | -    outfile.close()
 | 
|  | 177 | +    fileoperation(infile, outfile, s5l8702decryptnor) | 
| 195 | 178 |  | 
| 196 |  | -
 | 
| 197 | 179 | def s5l8702genpwnagefile(infile, outfile): | 
| 198 |  | -    infile = open(infile, "rb")
 | 
| 199 |  | -    outfile = open(outfile, "wb")
 | 
| 200 |  | -    outfile.write(s5l8702genpwnage(infile.read()))
 | 
| 201 |  | -    infile.close()
 | 
| 202 |  | -    outfile.close()
 | 
|  | 180 | +    fileoperation(infile, outfile, s5l8702genpwnage) | 
| 203 | 181 |  | 
| 204 |  | -
 | 
| 205 | 182 | def s5l8702genpwnagefile800(infile, outfile): | 
| 206 |  | -    infile = open(infile, "rb")
 | 
| 207 |  | -    outfile = open(outfile, "wb")
 | 
| 208 |  | -    outfile.write(s5l8702genpwnage800(infile.read()))
 | 
| 209 |  | -    infile.close()
 | 
| 210 |  | -    outfile.close()
 | 
|  | 183 | +    fileoperation(infile, outfile, s5l8702genpwnage800) | 
| 211 | 184 |  | 
| 212 |  | -
 | 
| 213 | 185 | def s5l8720genpwnagefile(infile, outfile): | 
| 214 |  | -    infile = open(infile, "rb")
 | 
| 215 |  | -    outfile = open(outfile, "wb")
 | 
| 216 |  | -    outfile.write(s5l8720genpwnage(infile.read()))
 | 
| 217 |  | -    infile.close()
 | 
| 218 |  | -    outfile.close()
 | 
|  | 186 | +    fileoperation(infile, outfile, s5l8720genpwnage) |