Sec Cpt

Sec-CPT (Secure Cryptographic Proof Token) is a proof-of-work challenge requiring iterative cryptographic puzzle solving.

Overview

When you encounter Sec-CPT, you receive challenge parameters that must be solved repeatedly until the challenge completes.

Solution Flow

1

Parse challenge

When redirected to /sec_cpt, you receive a sec_cpt cookie and response:

{ 
    "sec-cp-challenge": "true", 
    "provider": "crypto", 
    "branding_url_content": "/sec/cp_challenge/crypto_message-4-3.htm", 
    "chlg_duration": 10, 
    "token": "AAQAAAAJ______zPeS_XLMgcgCliW0xZMRC0oYYmC-...", 
    "timestamp": 1710948856, 
    "nonce": "0cda6c193b9e34722912", 
    "difficulty": 5000, 
    "timeout": 1000, 
    "cpu": false 
}

Save the sec_cpt cookie.

2

Request solution

Example request:

curl -X POST https://www.roolink.io/api/v1/sec_cpt \
  -H "Content-Type: application/json" \
  -H "x-api-key: your-api-key" \
  -d '{
    "token": "AAQAAAAJ______zPeS_XLMgcgCliW0xZMRC0oYYmC-...",
    "timestamp": 1710948856,
    "nonce": "0cda6c193b9e34722912",
    "difficulty": 5000,
    "cookie": "your-current-_abck-cookie"
  }'

Example response:

{
    "token": "...",
    "answers": ["0.8262d5119033c7ef", "0.2d8a73b164f0f266", "..."]
}
3

Submit answers

POST the answers to your site:

POST https://example.com/_sec/verify?provider=crypto
Content-Type: application/json

{
    "token": "...",
    "answers": ["0.8262d5119033c7ef", "..."]
}

Example response:

{ 
    "success": true, 
    "token": "NEW_TOKEN...", 
    "timestamp": 1710948857, 
    "nonce": "ebb7b55667e6f53732af", 
    "difficulty": 4500
}
4

Update & repeat

Notice difficulty decreased (5000 → 4500). Update your request with the new values:

  • token

  • timestamp

  • nonce

  • difficulty

Repeat the Request solution and Submit answers steps until:

  • sec_cpt cookie contains ~2~ instead of ~1~

  • Response is only {"success": true}

5

Final verification

GET https://example.com/_sec/cp_challenge/verify

This sets the final sec_cpt cookie with ~3~. Done!

Contains
Meaning

~1~

Challenge in progress

~2~

Almost complete

~3~

Challenge solved

Troubleshooting

Difficulty not decreasing

Solution: Update all parameters each iteration (token, timestamp, nonce, difficulty).

Stuck in loop

Solution: Check for a {"success": true} response.

Last updated