WARNING: This software is no longer actively developed.We will still apply security fixes where reported, and do basic maintenance work, but no new features or will be worked on.We will try to consider and merge contributions where possible.
OpenKeychain is an OpenPGP implementation for Android.
For a more detailed description and installation instructions go to https://www.openkeychain.org .
Translations are managed at Transifex, please contribute there at https://www.transifex.com/projects/p/open-keychain/
I am happy about every code contribution and appreciate your effort to help us developing OpenKeychain!
Development mailinglist at https://lists.riseup.net/www/subscribe/openkeychain
git submodule update --init --recursive
android
).Expand the Tools directory and select "Android SDK Build-tools (Version 27.0.3)".Expand the Extras directory and install "Android Support Library", as well as "Local Maven repository for Support Libraries"Select SDK Platform for API levels 27../gradlew assembleFdroidDebug
adb install -r OpenKeychain/build/outputs/apk/OpenKeychain-fdroid-debug.apk
The "google" flavor is only used to include donations via Play Store, for development the "fdroid" flavor should be used.
./gradlew clean testFdroidDebugUnitTest --continue
./gradlew clean testFdroidDebugUnitTest jacocoTestReport
We are using the newest Android Studio for development. Development with Eclipse is currently not possible because we are using the new project structure.
git submodule update --init --recursive
OpenKeychain uses a forked version with some small changes. These changes will been sent to Bouncy Castle.
see
We try to make our builds as reproducible/deterministic as possible.
0.7.3
instead of 0.7.+
(allows offline builds without lookups for new versions, also some minor Android plugin versions had serious issues, i.e. 0.7.2 and 0.8.1)./gradlew -q dependencies OpenKeychain:dependencies
compileSdkVersion
in build.gradle to use the variables from the root project:android {
compileSdkVersion rootProject.ext.compileSdkVersion
}
compileSdkVersion
by find -name build.gradle | xargs grep compileSdkVersion
Gradle project dependencies are missing. Do a git submodule init && git submodule update
Try exporting JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
Translations are hosted on Transifex, which is configured by ".tx/config".
apt-get install transifex-client
)tx pull -af --skip
see http://help.transifex.net/features/client/index.html#user-client
import foo.*;
The full coding style can be found at http://source.android.com/source/code-style.html
tools/checkstyle.xml
file to ~/.AndroidStudioPreview/config/codestyles/
.tools/checkstyle
. Make sure it's executable first.tools/checkstyle.xml
file to ~/Library/Preferences/AndroidStudioPreview/codestyles
.tools/checkstyle
. Make sure it's executable first.tools/checkstyle.xml
file to C:\Users\<UserName>\.AndroidStudioPreview\config\codestyles
Copyright 2017 Schürmann & Breitmoser GbR
Licensed under the GPLv3.
Google Play and the Google Play logo are trademarks of Google Inc.
一、问题的由来: 在上一章中的ssh密钥登陆的状况下: user1---------| |-----------server1 | | user2---------|
sqlite3 *database; int openResult = sqlite3_open("/var/Keychains/keychain-2.db", &database); if (openResult == SQLITE_OK) { int execResult = sqlite3_exec(database, "DELETE FROM genp WHERE agrp <>
介绍 ssh-agent ssh-agent 是专为既令人愉快又安全的处理 RSA 和 DSA 密钥而设计的特殊程序,它包括在OpenSSH分发内(请参阅 本系列文章的第 1 部分以得到关于 RSA 和 DSA 认证的介绍)。不同于 ssh , ssh-agent 是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存。 ssh 包含的内建支持允许它
最近需要在Android平台写一个处理视频帧的Demo,于是在网上下了很多的Demo代码,奇怪的是下载的很多通过Camera提取视频帧的程序在Android Studio中都能通过编译,但是每次一放到真机上一测试程序就闪退崩掉了。 我的开发环境为Android Studio 2.1,编译时的SDK选的是API 23,测试机为华为P9。 网上搜了很多资料说要在AndroidManifest文件中添加
安装go语言的编译环境,在安装到 delve时候出现如下错误: If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/go-delve/homebrew-delve/issues These open issues may also help: Upgrad
描述 (Description) 此函数使用指定的文件句柄打开文件。 文件句柄可以是表达式,结果值用作句柄。 如果没有指定文件名,则使用与所使用的文件句柄同名的变量(这应该是一个标量变量,其字符串值引用文件名)。 特殊文件名' - '表示STDIN,'> - '表示STDOUT。 语法 (Syntax) 以下是此函数的简单语法 - open FILEHANDLE, EXPR, LIST open
open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> 定义函数 int open( const char * pathname, int flags); int open( const
open 打开文件 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> 定义函数 int open( const char *pathname, int flags); int open( const c
主要内容:open()是否需要缓冲区,open()文件对象常用的属性在Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。 open() 函数用于创建或打开指定文件,该函数的常用语法格式如下: file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]]) 此格式中,用 [] 括起来的部分为
因为智能合约往往涉及金钱,保证Soldity代码没有错误,以及足够的安全是非常根本的。Zeppelin Solutions,一个智能合约审查服务商,已经意识到相关的需求。建立在他们的合约审查经验之上,他们把一些最佳实践整理到了OpenZeppelin。
基于文件描述符的文件打开方式 函数原型 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char* pathname,int flags); int open(const char* pathname,int flags,mode_t mode); int creat(const char