code: func ComputeSKI(template *x509.Certificate) ([]byte, error) {
  	pub := template.PublicKey
  	encodedPub, err := x509.MarshalPKIXPublicKey(pub)
  	if err != nil {
  		return nil, err
  	}
  
  	var subPKI subjectPublicKeyInfo
  	_, err = asn1.Unmarshal(encodedPub, &subPKI)
  	if err != nil {
  		return nil, err
  	}
  
  	pubHash := sha1.Sum(subPKI.SubjectPublicKey.Bytes)
  	return pubHash[:], nil
  }
docs: // ComputeSKI derives an SKI from the certificate's public key in a
  // standard manner. This is done by computing the SHA-1 digest of the
  // SubjectPublicKeyInfo component of the certificate.