read() public method

See also: http://tools.ietf.org/html/rfc4880#section-5.5.2
public read ( )
Beispiel #1
0
 function read()
 {
     parent::read();
     // All the fields from PublicKey
     $this->s2k_useage = ord($this->read_byte());
     if ($this->s2k_useage == 255 || $this->s2k_useage == 254) {
         $this->symmetric_algorithm = ord($this->read_byte());
         $this->s2k = OpenPGP_S2k::parse($this->input);
     } else {
         if ($this->s2k_useage > 0) {
             $this->symmetric_algorithm = $this->s2k_useage;
         }
     }
     if ($this->s2k_useage > 0) {
         $this->encrypted_data = $this->input;
         // Rest of input is MPIs and checksum (encrypted)
     } else {
         $this->key_from_input();
         $this->private_hash = $this->read_bytes(2);
         // TODO: Validate checksum?
     }
 }
Beispiel #2
0
 function read()
 {
     parent::read();
     // All the fields from PublicKey
     $this->s2k_useage = ord($this->read_byte());
     if ($this->s2k_useage == 255 || $this->s2k_useage == 254) {
         $this->symmetric_type = ord($this->read_byte());
         $this->s2k_type = ord($this->read_byte());
         $this->s2k_hash_algorithm = ord($this->read_byte());
         if ($this->s2k_type == 1 || $this->s2k_type == 3) {
             $this->s2k_salt = $this->read_bytes(8);
         }
         if ($this->s2k_type == 3) {
             $c = ord($this->read_byte());
             $this->s2k_count = (int) 16 + ($c & 15) << ($c >> 4) + 6;
         }
     } else {
         if ($this->s2k_useage > 0) {
             $this->symmetric_type = $this->s2k_useage;
         }
     }
     if ($this->s2k_useage > 0) {
         // TODO: IV of the same length as cipher's block size
         $this->encrypted_data = $this->input;
         // Rest of input is MPIs and checksum (encrypted)
     } else {
         $this->data = $this->input;
         // Rest of input is MPIs and checksum
         $this->key_from_data();
     }
 }