def getPingerSeed(self): """DOCDOC""" if self.pingerSeed is not None: return self.pingerSeed fn = os.path.join(self.keyDir, "pinger.seed") if os.path.exists(fn): checkPrivateFile(fn) r = readFile(fn) if len(r) == mixminion.Crypto.DIGEST_LEN: self.pingerSeed = r return r self.pingerSeed = r = mixminion.Crypto.trng(mixminion.Crypto.DIGEST_LEN) createPrivateDir(self.keyDir) writeFile(fn, r, 0600) return r
def getPingerSeed(self): """DOCDOC""" if self.pingerSeed is not None: return self.pingerSeed fn = os.path.join(self.keyDir, "pinger.seed") if os.path.exists(fn): checkPrivateFile(fn) r = readFile(fn) if len(r) == mixminion.Crypto.DIGEST_LEN: self.pingerSeed = r return r self.pingerSeed = r = mixminion.Crypto.trng( mixminion.Crypto.DIGEST_LEN) createPrivateDir(self.keyDir) writeFile(fn, r, 0600) return r
def getIdentityKey(self): """Return this server's identity key. Generate one if it doesn't exist.""" password = None # FFFF Use this, somehow. fn = os.path.join(self.keyDir, "identity.key") bits = self.config['Server']['IdentityKeyBits'] if os.path.exists(fn): checkPrivateFile(fn) key = mixminion.Crypto.pk_PEM_load(fn, password) keylen = key.get_modulus_bytes() * 8 if keylen != bits: LOG.warn( "Stored identity key has %s bits, but you asked for %s.", keylen, bits) else: LOG.info("Generating identity key. (This may take a while.)") key = mixminion.Crypto.pk_generate(bits) mixminion.Crypto.pk_PEM_save(key, fn, password) LOG.info("Generated %s-bit identity key.", bits) return key
def getIdentityKey(self): """Return this server's identity key. Generate one if it doesn't exist.""" password = None # FFFF Use this, somehow. fn = os.path.join(self.keyDir, "identity.key") bits = self.config['Server']['IdentityKeyBits'] if os.path.exists(fn): checkPrivateFile(fn) key = mixminion.Crypto.pk_PEM_load(fn, password) keylen = key.get_modulus_bytes()*8 if keylen != bits: LOG.warn( "Stored identity key has %s bits, but you asked for %s.", keylen, bits) else: LOG.info("Generating identity key. (This may take a while.)") key = mixminion.Crypto.pk_generate(bits) mixminion.Crypto.pk_PEM_save(key, fn, password) LOG.info("Generated %s-bit identity key.", bits) return key
def checkKeys(self): """Check whether all the required keys exist and are private.""" checkPrivateFile(self.packetKeyFile)