/**
  * @param $content
  * @return SignedMessage
  */
 public function parse($content)
 {
     if (0 !== strpos($content, self::HEADER)) {
         throw new \RuntimeException('Message must begin with -----BEGIN BITCOIN SIGNED MESSAGE-----');
     }
     $sigHeaderPos = strpos($content, self::SIG_START);
     if (false === $sigHeaderPos) {
         throw new \RuntimeException('Unable to find start of signature');
     }
     $sigEnd = strlen($content) - strlen(self::FOOTER);
     if (strpos($content, self::FOOTER) !== $sigEnd) {
         throw new \RuntimeException('Message must end with -----END BITCOIN SIGNED MESSAGE-----');
     }
     $messageStartPos = strlen(self::HEADER) + 1;
     $messageEndPos = $sigHeaderPos - $messageStartPos - 1;
     $message = substr($content, $messageStartPos, $messageEndPos);
     $sigHex = bin2hex(base64_decode(substr($content, $sigHeaderPos + strlen(self::SIG_START), $sigEnd)));
     $compactSig = $this->csSerializer->parse($sigHex);
     return new SignedMessage($message, $compactSig);
 }
 /**
  * @return \BitWasp\Buffertools\Buffer
  */
 public function getBuffer()
 {
     $serializer = new CompactSignatureSerializer(Bitcoin::getMath());
     return $serializer->serialize($this);
 }