摘要(Abstract)
ndroid是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 [1] 2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。中文名 安卓 原版名称 Android 开发商 Google、开放手持设备联盟 发行商 Google 发行日期 2008年9月23日 制作人 安迪·鲁宾 最新版本Android 9.0 Pie(派) 最新预览版本 Android Q Beta1 发行阶段 正式版 编程语言C/C++(底层) Java等(应用层) 系统家族类Unix,Linux 源码模式 自由及开放源代码软件 内核类型宏内核(Linux内核) 软件许可 Apache License、 GPL等
主题(Topic)
项目(Project)
William-Brumble/CIPortal
springkim/cip
William-Brumble/ECD
cartesi/cips
zielesny/CIP
komietty/unity-cip-flow
yanuaraditia/cip
Yaoir/cip
RuizeHan/CIP
EIPStackGroup/OpENerFileObject
EIPStackGroup/OpENerBaseEnergyObject
EIPStackGroup/OpENerElectricalEnergyObject
telescopio-montemayor/ethernet-encoder-servo
Giotto12138/CIP-project
CIP-RIU/brapi
dickwyn/cip-2021
redhat-cip/edeploy
dezhenglu/cip-cloud
SUDA-LA/CIP
moov-io/customers
ammolytics/cartridges
aenniw/ELRO-CIP-39032KL
redhat-cip/software-factory
ayushman4/SCADA-CIP-Discovery
redhat-cip/dci-openstack-agent
yzhangcs/CRF
yzhangcs/HMM
Asheladia/smargov
> descriptors = new HashMap(); private static final String MD = "MessageDigest"; private static final String SIG = "Signature"; private static final String KPG = "KeyPairGenerator"; private static final String KG = "KeyGenerator"; private static final String AGP = "AlgorithmParameters"; private static final String KF = "KeyFactory"; private static final String SKF = "SecretKeyFactory"; private static final String CIP = "Cipher"; private static final String MAC = "Mac"; private static final String KA = "KeyAgreement"; private static final String KS = "KeyStore"; private static final String SR = "SecureRandom"; Token getToken() { return this.token; } public SunPKCS11() { super("SunPKCS11-Dummy", 1.8D, "SunPKCS11-Dummy"); this.LOCK_HANDLER = new Object(); throw new ProviderException("SunPKCS11 requires configuration file argument"); } public SunPKCS11(String var1) { this((String)checkNull(var1), (InputStream)null); } public SunPKCS11(InputStream var1) { this(getDummyConfigName(), (InputStream)checkNull(var1)); } private static T checkNull(T var0) { if (var0 == null) { throw new NullPointerException(); } else { return var0; } } private static synchronized String getDummyConfigName() { int var0 = ++dummyConfigId; return "---DummyConfig-" + var0 + "---"; } /** @deprecated */ @Deprecated public SunPKCS11(String var1, InputStream var2) { super("SunPKCS11-" + Config.getConfig(var1, var2).getName(), 1.8D, Config.getConfig(var1, var2).getDescription()); this.LOCK_HANDLER = new Object(); this.configName = var1; this.config = Config.removeConfig(var1); if (debug != null) { System.out.println("SunPKCS11 loading " + var1); } String var3 = this.config.getLibrary(); String var4 = this.config.getFunctionList(); long var5 = (long)this.config.getSlotID(); int var7 = this.config.getSlotListIndex(); boolean var8 = this.config.getNssUseSecmod(); boolean var9 = this.config.getNssUseSecmodTrust(); Module var10 = null; String var13; if (var8) { Secmod var11 = Secmod.getInstance(); DbMode var12 = this.config.getNssDbMode(); String var14; try { var13 = this.config.getNssLibraryDirectory(); var14 = this.config.getNssSecmodDirectory(); boolean var15 = this.config.getNssOptimizeSpace(); if (var11.isInitialized()) { String var16; if (var14 != null) { var16 = var11.getConfigDir(); if (var16 != null && !var16.equals(var14)) { throw new ProviderException("Secmod directory " + var14 + " invalid, NSS already initialized with " + var16); } } if (var13 != null) { var16 = var11.getLibDir(); if (var16 != null && !var16.equals(var13)) { throw new ProviderException("NSS library directory " + var13 + " invalid, NSS already initialized with " + var16); } } } else { if (var12 != DbMode.NO_DB) { if (var14 == null) { throw new ProviderException("Secmod not initialized and nssSecmodDirectory not specified"); } } else if (var14 != null) { throw new ProviderException("nssSecmodDirectory must not be specified in noDb mode"); } var11.initialize(var12, var14, var13, var15); } } catch (IOException var20) { throw new ProviderException("Could not initialize NSS", var20); } List var26 = var11.getModules(); if (this.config.getShowInfo()) { System.out.println("NSS modules: " + var26); } var14 = this.config.getNssModule(); if (var14 == null) { var10 = var11.getModule(ModuleType.FIPS); if (var10 != null) { var14 = "fips"; } else { var14 = var12 == DbMode.NO_DB ? "crypto" : "keystore"; } } if (var14.equals("fips")) { var10 = var11.getModule(ModuleType.FIPS); var9 = true; var4 = "FC_GetFunctionList"; } else if (var14.equals("keystore")) { var10 = var11.getModule(ModuleType.KEYSTORE); var9 = true; } else if (var14.equals("crypto")) { var10 = var11.getModule(ModuleType.CRYPTO); } else if (var14.equals("trustanchors")) { var10 = var11.getModule(ModuleType.TRUSTANCHOR); var9 = true; } else { if (!var14.startsWith("external-")) { throw new ProviderException("Unknown NSS module: " + var14); } int var27; try { var27 = Integer.parseInt(var14.substring("external-".length())); } catch (NumberFormatException var19) { var27 = -1; } if (var27 < 1) { throw new ProviderException("Invalid external module: " + var14); } int var30 = 0; Iterator var17 = var26.iterator(); while(var17.hasNext()) { Module var18 = (Module)var17.next(); if (var18.getType() == ModuleType.EXTERNAL) { ++var30; if (var30 == var27) { var10 = var18; break; } } } if (var10 == null) { throw new ProviderException("Invalid module " + var14 + ": only " + var30 + " external NSS modules available"); } } if (var10 == null) { throw new ProviderException("NSS module not available: " + var14); } if (var10.hasInitializedProvider()) { throw new ProviderException("Secmod module already configured"); } var3 = var10.libraryName; var7 = var10.slot; } this.nssUseSecmodTrust = var9; this.nssModule = var10; File var23 = new File(var3); if (!var23.getName().equals(var3) && !(new File(var3)).isFile()) { String var25 = "Library " + var3 + " does not exist"; if (this.config.getHandleStartupErrors() == 1) { throw new ProviderException(var25); } else { throw new UnsupportedOperationException(var25); } } else { try { if (debug != null) { debug.println("Initializing PKCS#11 library " + var3); } CK_C_INITIALIZE_ARGS var24 = new CK_C_INITIALIZE_ARGS(); var13 = this.config.getNssArgs(); if (var13 != null) { var24.pReserved = var13; } var24.flags = 2L; PKCS11 var28; try { var28 = PKCS11.getInstance(var3, var4, var24, this.config.getOmitInitialize()); } catch (PKCS11Exception var21) { if (debug != null) { debug.println("Multi-threaded initialization failed: " + var21); } if (!this.config.getAllowSingleThreadedModules()) { throw var21; } if (var13 == null) { var24 = null; } else { var24.flags = 0L; } var28 = PKCS11.getInstance(var3, var4, var24, this.config.getOmitInitialize()); } this.p11 = var28; CK_INFO var29 = this.p11.C_GetInfo(); if (var29.cryptokiVersion.major < 2) { throw new ProviderException("Only PKCS#11 v2.0 and later supported, library version is v" + var29.cryptokiVersion); } else { boolean var32 = this.config.getShowInfo(); if (var32) { System.out.println("Information for provider " + this.getName()); System.out.println("Library info:"); System.out.println(var29); } if (var5 < 0L || var32) { long[] var31 = this.p11.C_GetSlotList(false); if (var32) { System.out.println("All slots: " + toString(var31)); var31 = this.p11.C_GetSlotList(true); System.out.println("Slots with tokens: " + toString(var31)); } if (var5 < 0L) { if (var7 < 0 || var7 >= var31.length) { throw new ProviderException("slotListIndex is " + var7 + " but token only has " + var31.length + " slots"); } var5 = var31[var7]; } } this.slotID = var5; CK_SLOT_INFO var33 = this.p11.C_GetSlotInfo(var5); this.removable = (var33.flags & 2L) != 0L; this.initToken(var33); if (var10 != null) { var10.setProvider(this); } } } catch (Exception var22) { if (this.config.getHandleStartupErrors() == 2) { throw new UnsupportedOperationException("Initialization failed", var22); } else { throw new ProviderException("Initialization failed", var22); } } } } private static String toString(long[] var0) { if (var0.length == 0) { return "(none)"; } else { StringBuilder var1 = new StringBuilder(); var1.append(var0[0]); for(int var2 = 1; var2 < var0.length; ++var2) { var1.append(", "); var1.append(var0[var2]); } return var1.toString(); } } public boolean equals(Object var1) { return this == var1; } public int hashCode() { return System.identityHashCode(this); } private static String[] s(String... var0) { return var0; } private static int[] m(long var0) { return new int[]{(int)var0}; } private static int[] m(long var0, long var2) { return new int[]{(int)var0, (int)var2}; } private static int[] m(long var0, long var2, long var4) { return new int[]{(int)var0, (int)var2, (int)var4}; } private static int[] m(long var0, long var2, long var4, long var6) { return new int[]{(int)var0, (int)var2, (int)var4, (int)var6}; } private static void d(String var0, String var1, String var2, int[] var3) { register(new SunPKCS11.Descriptor(var0, var1, var2, (String[])null, var3)); } private static void d(String var0, String var1, String var2, String[] var3, int[] var4) { register(new SunPKCS11.Descriptor(var0, var1, var2, var3, var4)); } private static void register(SunPKCS11.Descriptor var0) { for(int var1 = 0; var1 < var0.mechanisms.length; ++var1) { int var2 = var0.mechanisms[var1]; Integer var3 = var2; Object var4 = (List)descriptors.get(var3); if (var4 == null) { var4 = new ArrayList(); descriptors.put(var3, var4); } ((List)var4).add(var0); } } private void createPoller() { if (this.poller == null) { SunPKCS11.TokenPoller var1 = new SunPKCS11.TokenPoller(this); Thread var2 = new Thread(var1, "Poller " + this.getName()); var2.setDaemon(true); var2.setPriority(1); var2.start(); this.poller = var1; } } private void destroyPoller() { if (this.poller != null) { this.poller.disable(); this.poller = null; } } private boolean hasValidToken() { Token var1 = this.token; return var1 != null && var1.isValid(); } synchronized void uninitToken(Token var1) { if (this.token == var1) { this.destroyPoller(); this.token = null; AccessController.doPrivileged(new PrivilegedAction