简体   繁体   English

如何使用C代码或Python检查gnome密钥环状态?

[英]How to check gnome keyrings state with c code or python?

Currently using the command line gkey-lock/gkey-unlock with the flowing code to lock and unlock gnome default keyring, How can we implement gnome_keyring_info_get_is_locked() from <gnome-keyring.h> to check the locking state in c or python 当前,使用带有流动代码的命令行gkey-lock / gkey-unlock来锁定和解锁gnome默认密钥环,我们如何实现<gnome-keyring.h> gnome_keyring_info_get_is_locked()以检查c或python中的锁定状态

Lock Keyring - gkey-lock.c 锁匙扣-gkey-lock.c

#include <stdio.h>
#include <gnome-keyring.h>

int main() {
    GnomeKeyringResult lock_result = gnome_keyring_lock_all_sync();
    if (lock_result == GNOME_KEYRING_RESULT_OK) {
        printf("Successfully locked\n");
        return 0;
    } else {
        printf("Error locking keyring: %d\n", lock_result);
        return 1;
    }
}

Unlock Keyring - gkey-unlock.c 解锁钥匙圈-gkey-unlock.c

#include <stdio.h>
#include <gnome-keyring.h>

int main() {
    GnomeKeyringResult lock_result = gnome_keyring_unlock_sync(NULL,NULL);
    if (lock_result == GNOME_KEYRING_RESULT_OK) {
        printf("Successfully unlocked\n");
        return 0;
    } else {
        printf("Error unlocking keyring: %d\n", lock_result);
        return 1;
    }
}

Gnome Keyring Command Line Tools (check/lock/unlock) Gnome Keyring命令行工具(检查/锁定/解锁)

Sources & Release : https://github.com/intika/gnome-keyring-tools 来源和发布: https : //github.com/intika/gnome-keyring-tools

Check Keyring - gkey-check.c 检查钥匙圈-gkey-check.c

#include <stdio.h>
#include <gnome-keyring.h>

int main() {

  GnomeKeyringInfo *info;
  GnomeKeyringResult gkr;

  gkr = gnome_keyring_get_info_sync(NULL, &info);
  if (gkr != GNOME_KEYRING_RESULT_OK) {
    printf("error\n");
    return -1;
  }
  if (gnome_keyring_info_get_is_locked(info)) {
    printf("locked\n");
    return 0;
  }
  else {
    printf("unlocked\n");
    return -1;
  }
  gnome_keyring_info_free(info);

}

Check With Python - gkey-check.py 使用Python检查-gkey-check.py

import gnomekeyring
print gnomekeyring.get_info_sync(gnomekeyring.get_default_keyring_sync()).get_is_locked()

How to build 如何建造

cc gkey-check.c -o gkey-check -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM