def generate_broker_key(app)
cipher = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
cipher.encrypt
cipher.key = OpenSSL::Digest::SHA512.new(@salt).digest
cipher.iv = iv = cipher.random_iv
token = {:app_name => app.name,
@token_login_key => app.user.login,
:creation_time => app.creation_time}
encrypted_token = cipher.update(token.to_json)
encrypted_token << cipher.final
public_key = OpenSSL::PKey::RSA.new(File.read(@pubkeyfile), @privkeypass)
encrypted_iv = public_key.public_encrypt(iv)
encoded_iv = Base64::encode64(encrypted_iv)
encoded_token = Base64::encode64(encrypted_token)
[encoded_iv, encoded_token]
end