Exemplo n.º 1
0
def main():
    keychain_file = get_apsd_configuration().keychain
    fh = open(keychain_file)
    apsd_prefs = get_apsd_preferences()
    password = calculate_apsd_keychain_password(apsd_prefs)
    master_key = getdbkey(fh, password)
    keychain = Keychain(fh)
    # record type 16 - private keys
    # see CSSM_DL_DB_RECORD_PRIVATE_KEY in cssmtype.h (libsecurity_cssm)
    table = keychain.table_by_record_type(16)
    record = table.find_record_by_attribute('PrintName',
                                            apsd_prefs['CertificateName'])

    key = decrypt_rsa_key(record.data, master_key)
    key_pem = rsa_key_der_to_pem(key)
    certificate_pem = extract_certificate(keychain_file)

    push_cert_file = join(CERT_PATH, apsd_prefs['CertificateName'] + '.pem')

    cert_fh = sys.stdout
    if len(sys.argv) > 1 and sys.argv[1] == '-f':
        cert_fh = open(push_cert_file, 'wb')
        sys.stderr.write('Writing private key and certificate to %s\n' %
                         push_cert_file)

    cert_fh.write(key_pem)
    cert_fh.write(certificate_pem)
Exemplo n.º 2
0
 def __init__(self,
              stdin=sys.stdin,
              stdout=sys.stdout,
              stderr=sys.stderr,
              getpass=getpass.getpass,
              arguments=sys.argv[1:]):
     self.stdin = stdin
     self.stdout = stdout
     self.stderr = stderr
     self.getpass = getpass
     self.arguments = self.argument_parser().parse_args(arguments)
     self.keychain = Keychain(self.arguments.path)
Exemplo n.º 3
0
    def __init__(self):
        super(App, self).__init__("HipStatus")
        self.icon = _menu_bar_icon(0)
        self.preferences = Preferences()
        self._validate_preferences()

        self.keychain = Keychain(self.preferences.email())
        self._validate_keychain()

        self.hipchat = HipChat(self.keychain.read_token())
        self.office365 = Office365(self.preferences.email(),
                                   self.keychain.read_o365())

        self.menu_pause_button = rumps.MenuItem("Pause HipStatus",
                                                self.timer_pause)
        self.menu_preferences = rumps.MenuItem('Preferences...')

        self.menu = [
            self.menu_pause_button, rumps.separator, self.menu_preferences,
            rumps.separator
        ]

        self.menu_preferences_message = rumps.MenuItem(
            "", self.preferences_message)
        if self.preferences.default_message():
            self.menu_preferences_message.title = self.preferences.default_message(
            )
        else:
            self.menu_preferences_message.title = "None..."

        self.menu_preferences_email = rumps.MenuItem(
            "Change email address", self.preferences_update_email)
        self.menu_preferences_o365 = rumps.MenuItem(
            "Update saved Office 365 password", self.preferences_update_o365)
        self.menu_preferences_token = rumps.MenuItem(
            "Update saved HipChat token", self.preferences_update_token)
        self.menu_preferences_get_token = rumps.MenuItem(
            "Get your HipChat token", open_browser)

        self.menu_preferences.add(rumps.MenuItem('Status message...'))
        self.menu_preferences.add(self.menu_preferences_message)
        self.menu_preferences.add(rumps.separator)
        self.menu_preferences.add(rumps.MenuItem('Preferences...'))
        self.menu_preferences.add(self.menu_preferences_email)
        self.menu_preferences.add(self.menu_preferences_o365)
        self.menu_preferences.add(self.menu_preferences_token)
        self.menu_preferences.add(rumps.separator)
        self.menu_preferences.add(self.menu_preferences_get_token)

        self.main_timer = rumps.Timer(self.timer_trigger, 300)
        self.main_timer.start()