def append(self, value): """ Adds certificate to stack """ if not self.need_free: raise ValueError("Stack is read-only") if not isinstance(value, X509): raise TypeError('StackOfX509 can contain only X509 objects') sk_push(self.ptr, libcrypto.X509_dup(value.cert))
def __setitem__(self, index, value): if not self.need_free: raise ValueError("Stack is read-only") if index < 0 or index >= len(self): raise IndexError if not isinstance(value, X509): raise TypeError('StackOfX509 can contain only X509 objects') p = sk_value(self.ptr, index) sk_set(self.ptr, index, libcrypto.X509_dup(value.cert)) libcrypto.X509_free(p)
def __getitem__(self, index): if index < 0 or index >= len(self): raise IndexError p = sk_value(self.ptr, index) return X509(ptr=libcrypto.X509_dup(p))