}
throw new RuntimeException();
} catch (final SmartCardSessionClosedException e) {
throw new CryptoTokenCancelException(e.toString());
} catch (final SmartCardCancelException e) {
throw new CryptoTokenCancelException(e.toString());
} catch (final SmartCardRemovedException e) {
throw new CryptoTokenCancelException(e.toString());
} catch (final SmartCardException e) {
throw new CryptoTokenException(e.toString());
} finally {
if (smartCardSession != null) {
smartCardSession.close();