code: protected function sha512Asn1($data)
      {
          $digest = hash('sha512', $data, true);
  
          // this ASN1 header is sha512 specific
          $asn1 = chr(0x30).chr(0x51);
          $asn1 .= chr(0x30).chr(0x0d);
          $asn1 .= chr(0x06).chr(0x09);
          $asn1 .= chr(0x60).chr(0x86).chr(0x48).chr(0x01).chr(0x65);
          $asn1 .= chr(0x03).chr(0x04);
          $asn1 .= chr(0x02).chr(0x03);
          $asn1 .= chr(0x05).chr(0x00);
          $asn1 .= chr(0x04).chr(0x40);
          $asn1 .= $digest;
  
          return $asn1;
      }
docs: Create a digest of the given data, with an asn1 header.
  
  @param string $data Data to create a digest of
  
  @return string