Got "SPC: cannot find TLLVs in the SPC" error

I have registered for FPS and got ASk and fairplay.cer from Apple. With demo file AssetResourceLoaderDelegate.swift, I implement

func requestApplicationCertificate() throws -> Data {
    let certificateURL = Bundle.main.url(forResource: "fairplay", withExtension: "cer")
    let applicationCertificate: Data? = try? Data(contentsOf: certificateURL!)
    return applicationCertificate!
}

and call

let ckcData = try self.requestContentKeyFromKeySecurityModule(spcData: spcData, assetID: assetIDString)

to send spcData to server.

But in server side, I save the spcData into a file, and verify it with verify_ckc tool, I got "SPC: cannot find TLLVs in the SPC" error!

So I have some questions:

1. there are some cases on web where *.der file is used to get applicationCertificate, is there differences between *.der and *.cer?

2. I get no error calling

let spcData = try resourceLoadingRequest.streamingContentKeyRequestData(forApp: applicationCertificate,
                                                                                        contentIdentifier: assetIDData,
                                                                                        options: nil)

, why the spcData can't pass the verify_ckc tool?


please let me know if something is wrong, thx!